Bootstrap'teki tabindex = "- 1" ne için


101

tabindexBootstrap 3'teki özellik ne için?

Tüm modallerde pratik olarak kullansalar da dokümantasyonu onlar hakkında hiçbir şey söylemiyor.

Bunu yalnızca kullanımıyla ilgili buldum, ki bu pek bir şey söylemiyor

Klavye ve yardımcı teknoloji kullanıcıları için erişilebilir araç ipuçları

Klavye ile gezinen kullanıcılar ve özellikle yardımcı teknolojilerin kullanıcıları için, bağlantılar, form denetimleri veya tabindex = "0" özniteliğine sahip herhangi bir rastgele öğe gibi klavye odaklı öğelere yalnızca araç ipuçları eklemelisiniz.

Ve öğrendim ben basın edemez esceğer bir kalıcı gizlemek için tabindexözellik değildir-1 .

Yanıtlar:


163

Bu tabindexözellik, bir sayfadaki odaklanılabilir öğeler (tipik olarak bağlantılar ve form kontrolleri) için gezinme sırasını açıkça tanımlar. Öğelerin odaklanabilir olup olmayacağını tanımlamak için de kullanılabilir.

[Her ikisi] tabindex="0"ve tabindex="-1"özel bir anlama sahiptir ve HTML'de farklı işlevler sağlar. Değeri 0, öğenin varsayılan gezinme sırasına yerleştirilmesi gerektiğini belirtir. Bu doğal olarak odaklanamazlar elemanları (örneğin verir <div>, <span>ve <p>klavye odağı alacak). Elbette, genel olarak tüm etkileşimli öğeler için bağlantılar ve form kontrolleri kullanılmalıdır, ancak bu, diğer öğelerin odaklanılmasına ve etkileşimi tetiklemesine izin verir.

Bir tabindex="-1"değer , öğeyi varsayılan gezinme akışından kaldırır (yani, bir kullanıcı sekme yapamaz), ancak programatik odak almasına izin verir , yani odak ona bir bağlantıdan veya komut dosyasıyla ayarlanabilir. ** Bu çok olabilir sekmeye alınmaması gereken, ancak odaklamanın onlara ayarlanması gerekebilecek öğeler için kullanışlıdır .

İyi bir örnek, kalıcı bir iletişim penceresidir - açıldığında, odak iletişim kutusuna ayarlanmalıdır, böylece bir ekran okuyucusu okumaya başlayacak ve klavye iletişim kutusu içinde gezinmeye başlayacaktır . Diyalog (muhtemelen sadece bir <div>öğe) varsayılan olarak tabindex="-1"odaklanılamadığından , bunun atanması , sunulduğunda komut dosyası ile odağın ona ayarlanmasına izin verir.

Bir değeri , sekme tuşuyla widget içindeki yalnızca bir öğenin gezilebilir olmasını sağlamak -1için ok tuşlarını veya diğer kısayol tuşlarını kullanan karmaşık widget'larda ve menülerde de yararlı olabilir , ancak yine de widget içindeki diğer bileşenlere odaklanmaya izin verir.

Kaynak: http://webaim.org/techniques/keyboard/tabindex

Bu nedenle tabindex="-1", kipte ihtiyacınız vardır <div>, böylece kullanıcılar genel fare ve klavye kısayollarına erişebilir. Umarım yardımcı olur.


1
Öznitelik HTML'nin bir parçasıdır, özellikle Bootstrap ile ilgisi yoktur.
Lutz Prechelt

8
Evet, burada tam olarak söylenen bu, "HTML'de farklı bir işlevsellik" ve Bootstrap ile bir ilgisi olmadığı.
Kyle Anderson

1
JavaScript ile bir <div> üzerine odaklanabilmek için, tabindex özniteliğinin bu eleman üzerinde tanımlanması ZORUNLUDUR (tabindex = -1 gibi herhangi bir değer). Div'de tabindex yoksa, odaklanma çalışmayacaktır. BS'nin modal div'e tabindex = -1 eklemesinin nedeni budur. Developer.mozilla.org/en-US/docs/Web/Accessibility/… bakın : tabindex mevcut değilse, JS ile odaklanabilir, öğenin platform kuralını takip edecektir (form kontrolleri, bağlantılar vb. İçin evet). Bu, tabindex mevcut değilse <div> 'in odaklanılamayacağı anlamına gelir.
Canada Wan

Tabindex = "- 1" olan öğelere tıklanarak da odaklanılabilir.
Black Mantha

14

Tabindex nitelik HTML ile ilişkilidir , bu Bootstrap özgü değildir.

Bu özellik, bir öğeye klavye gezintisi ile ulaşılabilir olup olmadığını belirtmekten sorumludur.

Üç farklı senaryoya dikkat etmeniz gerekiyor:

  1. Bir tabindex = "0"öğeye ekleme yaparken bu, klavye gezintisi ile erişilebilir olduğu anlamına gelir, ancak sıra, belgelerin kaynak sırası tarafından tanımlanır.

  2. Zaman pozitif bir değer eklemek (örneğin tabindex öznitelik tabindex = "1", tabindex = "2") bu elemanlar klavye navigasyon tarafından ulaşılabilir ve sipariş özelliği değeriyle tanımlanır.

  3. Ne zaman negatif bir değer ekleyerek tabindex (genelde tabindex="-1") o unsurdur anlamına klavye gezinme tarafından erişilemiyor ama JS odak işlevini kullanarak odaklanabilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.