Cel używania „aria-labelledby” na już oznaczonych elementach wejściowych?


84

Wiele witryn demonstracyjnych ARIA używa kodu, takiego jak:

<label for="name" id="label-name">Your Name</label>
<input id="name" aria-labelledby="label-name" type="text">


Ale jaki jest cel używania aria-labelledbyatrybutu w tym przypadku? inputElement został już oznaczony przez labelelement, który jest przy użyciu foratrybutu, prawda?



8
Dzięki @Sarfraz. Jednak ta strona nie ilustruje celu takiego użycia na już oznaczonych elementach wejściowych.
Ian Y.

Odpowiedzi:


69

Jest kilka dobrych przykładów jego użycia na stronach Mozilla Developer . Być może najlepszym z ich przykładów jest sytuacja, w której jest używany do powiązania menu podręcznego z elementem menu nadrzędnego - jest to przykład 7 na stronie:

<div role="menubar">  
    <div role="menuitem" aria-haspopup="true" id="fileMenu">File</div>  
    <div role="menu" aria-labelledby="fileMenu">  
        <div role="menuitem">Open</div>  
        <div role="menuitem">Save</div>  
       <div role="menuitem">Save as ...</div>  
       ...  
    </div>  
    ...  

Atrybuty ARIA wydają się być najbardziej przydatne w budowaniu dostępnych, bogatych aplikacji internetowych : o ile trzymasz się standardowego semantycznego HTML - używając formularzy ze standardowymi etykietami - nie powinieneś go wcale potrzebować: więc nie ma powodu, aby go używać para LABEL / INPUT. Ale jeśli budujesz „bogaty interfejs użytkownika” od podstaw (DIV i inne elementy niskiego poziomu z interaktywnością dodającą javascript), konieczne jest poinformowanie czytnika ekranu, jakie są intencje wyższego poziomu.


11
Dzięki @BrendanMcK. To, co powiedziałeś, jest prawdą. Zapytałem kogoś, kto pracuje dla ARIA i on również powiedział, że nie ma potrzeby używania w tym przypadku etykiety arii. Do oznaczania <input> s, powiedział, że używaj go tylko wtedy, gdy musimy oznaczyć <input> wieloma <label>. Oto przykład, który podał: html5accessibility.com/tests/mulitple-labels.html
Ian Y.



5

Zawsze pojawiają się problemy ze wsparciem UA z czymkolwiek nowym, dlatego programiści zwracają uwagę na stopniowe ulepszanie. Ta technika ARIA umożliwia pozbycie się atrybutu „za” i pozwala innym elementom stać się częścią bogatej formy. Techniki te staną się powszechną praktyką.


1
Czy po kliknięciu skupia się na elemencie, jak robi to atrybut for? Chyba nie
Dominic

3
Całkowicie fałszywe. Atrybuty arii NIE mają zastępować innych atrybutów, ponieważ ich jedynym celem jest uczynienie elementów bardziej dostępnymi. Elementy NIE powinny być aktywowane z powodu jakiegokolwiek atrybutu arii.
Gust van de Wal

1
W mojej opinii powszechna praktyka (niestety?) Nadal nie jest prawdą. Najlepsza praktyka, może być lepszym wyborem. Może w przyszłości, kiedy powszechną praktyką jest, że wysoce zaawansowana sztuczna inteligencja pisze html zamiast ludzi :)
Michael
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.