DOM Sırası Önemlidir

Varsayılan DOM sırasının önemi

Dave Gash
Dave Gash
Meggin Kearney
Meggin Kearney

Yerel öğelerle çalışmak, odaklanma davranışı hakkında bilgi edinmenin harika bir yoludur. Çünkü bu öğeler DOM'deki konumlarına göre sekme sırasına otomatik olarak eklenir.

Örneğin, DOM'de arka arkaya olmak üzere üç düğme öğeniz olabilir. Tab tuşuna bastığınızda her düğme sırayla odaklanır. Odak gezinme başlangıç noktasını taşımak için aşağıdaki kod bloğunu tıklamayı deneyin, ardından odağı düğmeler arasında taşımak için Tab tuşuna basın.

<button>I Should</button>
<button>Be Focused</button>
<button>Last!</button>

Bununla birlikte, CSS kullanıldığında öğelerin DOM'de tek bir sırada varken ekranda farklı bir sırada görünmesinin mümkün olduğunu unutmayın. Örneğin, bir düğmeyi sağa taşımak için float gibi bir CSS özelliği kullanırsanız düğmeler ekranda farklı bir sırada görünür. Ancak DOM'daki sıraları aynı kaldığı için sekme sıraları da aynı kalır. Kullanıcı sayfada sekmeyle ilerlediğinde düğmelere pratiklik olmayan bir sırada odaklanır. Odak gezinme başlangıç noktasını taşımak için aşağıdaki kod bloğunu tıklamayı deneyin, ardından odağı düğmeler arasında taşımak için Tab tuşuna basın.

<button style="float: right">I Should</button>
<button>Be Focused</button>
<button>Last!</button>

CSS'yi kullanarak ekrandaki öğelerin görsel konumunu değiştirirken dikkatli olun. Bu durum, sekme sırasının rastgele bir şekilde atlamasına neden olarak klavye kullanan kullanıcıların kafasını karıştırabilir. Bu nedenle, Web AIM kontrol listesinin 1.3.2 numaralı bölümünde kod sırasına göre belirlenen okuma ve gezinme sırasının mantıklı ve sezgisel olması gerektiği belirtilmektedir.

Kural olarak, sekme sırasını yanlışlıkla bozmadığınızdan emin olmak için sayfalarınız arasında ara sıra gezinmeyi deneyin. Benimsenmek iyi bir alışkanlıktır ve fazla çaba gerektirmeyen bir alışkanlıktır.

Ekran dışındaki içerik

Şu anda görüntülenmeyen ancak yine de DOM'de olması gereken içeriğiniz (duyarlı yan gezinme gibi) varsa ne olur? Ekran dışındayken odak noktası olan bunun gibi öğeleriniz olduğunda, odak görünmüyor ve sayfada kullanıcı sekmeleri olarak yeniden ortaya çıkabilir; bu durum kesinlikle istenmeyen bir efekttir. İdeal olarak, panelin ekranda olmadığında odak almasını engellemeli ve yalnızca kullanıcı panelle etkileşime geçebildiğinde panelin odağa alınmasına izin vermeliyiz.

Ekran dışındaki içeri kayan bir panel odağı çalabilir.

Bazen odaklanmanın nereye kaydığını anlamak için biraz dedektiflik yapmanız gerekir. Şu anda hangi öğenin odakta olduğunu öğrenmek için konsolda document.activeElement simgesini kullanabilirsiniz.

Hangi ekran dışı öğenin odağa alındığını öğrendikten sonra, öğeyi display: none veya visibility: hidden olarak ayarlayabilir ve ardından kullanıcıya göstermeden önce display: block veya visibility: visible olarak geri ayarlayabilirsiniz.

Hiçbirini göstermemeye ayarlanmış, içeri kayan bir panel.
Blok görüntülemek için ayarlanmış, içeri kayan bir panel.

Genel olarak, geliştiricilerin, sekme sırasının kaybolmadığından veya mantıklı bir diziden çıkmadığından emin olmak için her yayından önce sitelerinde gezinmelerini öneririz. Çalışıyorsa display: none veya visibility: hidden kullanarak ekran dışındaki içerikleri uygun şekilde gizlediğinizden veya DOM'deki öğelerin fiziksel konumlarını mantıksal bir sırada olacak şekilde yeniden düzenlediğinizden emin olmanız gerekir.