2015-06-24 5 views
16

Ich arbeite an einem Design-System, das sich vom Bootstrap-Framework erstreckt. Eines der Hauptziele ist die Barrierefreiheit. Beim Implementieren von Bootstrap-Registerkarten sehe ich, dass sie role="presentation" auf die Listenelemente in ihrer Navigationsliste anwenden.Warum haben Bootstrap-Registerkarten role = "presentation"?

Also habe ich ein wenig zusammen Stück HTML-Test aus der Vorlage Bootstrap:

<ul class="nav nav-tabs"> 
    <li role="presentation" class="active"><a href="#">Home</a></li> 
    <li role="presentation"><a href="#">Profile</a></li> 
    <li role="presentation"><a href="#">Messages</a></li> 
</ul> 

<ul class="nav nav-tabs"> 
    <li class="active"><a href="#">Home</a></li> 
    <li><a href="#">Profile</a></li> 
    <li><a href="#">Messages</a></li> 
</ul> 

Die ARIA-Spezifikation sagt, dass Präsentation eine Rolle, für die ist:

Die bestimmungsgemäße Verwendung ist, wenn ein Element wird verwendet, um das Aussehen der Seite zu ändern, aber hat nicht alle funktionalen, interaktiven oder strukturellen Relevanz impliziert durch den Elementtyp,

Es scheint mir, dass die <li> Elemente eine strukturelle Relevanz für jemanden haben, der ein Accessibility-Gerät verwendet, da sie Ihnen sagen, wie viele Tabs vorhanden sind. Wenn Sie beispielsweise feststellen sollten, dass der dritte Tab Informationen enthält, die Sie interessieren, navigieren Sie zur Liste und wissen, dass es drei Tabs gibt, damit Sie schneller zu dem gelangen, was Sie wollen.

Auch beim Zugriff auf diesen HTML-Test mit ChromeVox werden die Listen identisch angekündigt. So scheint es, dass die keine praktische Wirkung hat.

Ich habe diese Frage gegoogled, habe aber keine Diskussion darüber gefunden. Weiß jemand, warum dies Teil des Bootstrap-Frameworks ist?

+0

Wenn Sie nicht haben, möchten Sie vielleicht https://css-tricks.com/navigation-in-lists-to-be-or-not überprüfen -sein/. Es gibt einen Punkt dort - dass Sie nicht wollen, dass eine Navigationsleiste als "Liste von ..." angekündigt wird. Auch in Bezug auf den Unterschied möchten Sie vielleicht die Hyperlinks löschen und sehen, was passiert - die Spezifikation. sagt "role = Präsentation führt nicht dazu, dass der enthaltene Inhalt * innerhalb des Elements * aus der Accessibility-Struktur entfernt wird." – potatopeelings

+0

Ich habe versucht, eine Reihe von Links im Vergleich zu einer Liste in ChromeVox und kann den Unterschied hören. Ich bin nicht sicher, welchen Ansatz Benutzer von Bildschirmlesern bevorzugen würden. Ohne eine Liste scheint die Rolle noch weniger relevant zu sein, da ein Bereich von ChromeVox in jedem Fall ignoriert wird. Durch das Löschen der Hyperlinks wird die Tastaturzugriffe beeinträchtigt, was kontraproduktiv ist. – theJBRU

+0

Ich stimme @theJBRU zu, dass dies keinen Sinn ergibt.Mit der Existenz von Rollen, Tablisten, Tabs und Tabules scheint Bootstrap entschieden zu haben, Dinge auf ihre eigene Art und Weise zu tun, mit einer Rolle, die größtenteils missverstanden wird (wegen der vagen Dokumentation). Bootstrap verwendet Tab-Panel, welches nach Meinung der Dokumentation zusammen mit den anderen 2 Rollen verwendet werden sollte. – Jason

Antwort

2

Es ist hauptsächlich für Zugänglichkeitszwecke. http://john.foliot.ca/aria-hidden/. Sie können die „Rolle“ entfernen oder ändern

+4

Ich bekomme, warum Rolle = Präsentation existiert, ich sehe nur nicht, warum es standardmäßig im Bootstrap-Framework angewendet wird. Es scheint nicht die beabsichtigte Wirkung von meinen Tests zu haben. Ich habe es vorerst entfernt, forsche aber weiter. – theJBRU

6

Siehe aufzuschreiben über zugängliche Registerkarten von Marco bei https://www.marcozehe.de/2013/02/02/advanced-aria-tip-1-tabs-in-web-apps/

Seine Umsetzung hat role="presentation" auf dem li, um anzuzeigen, „dass der Bildschirm Leser sollten die Listenelemente selbst ignorieren“ und fügt dann die "tab" -Rolle auf den Links hinzu, "die die Rollen dem beabsichtigten Screenreader-erkennbaren Elementtyp zuordnen".

Ein Punkt in einem Problem im Bootstrap Accessibility-Projekt (https://github.com/paypal/bootstrap-accessibility-plugin/issues/59) ist, dass (richtig oder falsch) Tabs ziemlich häufig als Navigation verwendet werden, so dass es nicht sinnvoll wäre, immer die Rollen Tablist und Tab einzufügen. Wie Marco's Artikel bemerkt: "Es gibt viele Umstände, bei denen Tabs nicht die passende Semantik sind."

Übrigens wird unsere Arbeit nicht dadurch erleichtert, dass einzelne Kombinationen von Bildschirmlesern und Browsern dies nicht in gleicher Weise unterstützen. (Siehe diesen Artikel für eine schreiben auf das: http://john.foliot.ca/aria-hidden/)

Verwandte Themen