2012-06-22 9 views
61

Molti siti web dimostrazione ARIA utilizzano codice come:Lo scopo di usare "aria-labelledby" su elementi di input già etichettati?

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


ma qual è lo scopo di utilizzare l'attributo aria-labelledby in questo caso? L'elemento input è già stato etichettato dall'elemento label che utilizza l'attributo for, non è vero?

+0

http://www.w3.org/TR/2010/WD-wai-aria-20100916/states_and_properties#aria-labelledby – Sarfraz

+6

Grazie a @Sarfraz. Tuttavia, quella pagina non illustra lo scopo di tale uso su elementi di input già etichettati. –

risposta

52

Ci sono alcuni buoni esempi del suo utilizzo allo Mozilla Developer pages. Forse il meglio delle loro esempi è dove è utilizzato per associare un menu a comparsa con la voce di menu principale - è l'esempio 7 nella pagina:

<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> 
    ... 

attribuisce ARIA tende ad essere di maggiore utilizzo nella costruzione Accessibile Rich Internet Applications: fino a quando continui a utilizzare l'HTML semantico standard, utilizzando moduli con etichette standard, non dovresti averne bisogno: non c'è motivo di usarlo su una coppia LABEL/INPUT. Ma se stai costruendo "una ricca interfaccia utente" da zero (DIV e altri elementi di basso livello con javascript che aggiungono interattività), è essenziale che lo screen reader sappia qual è l'intento di livello superiore.

+4

Grazie a @BrendanMcK. Quello che hai detto è vero. Avevo chiesto a qualcuno che lavora per ARIA e anche lui ha detto che in questo caso non è necessario usare aria-labelledby. Per l'etichettatura di s, ha detto di usarlo solo quando è necessario etichettare uno con più

+0

[Più di una ETICHETTA può essere associata allo stesso controllo creando più riferimenti tramite l'attributo for] (http://www.w3.org/TR/1999/REC-html401-19991224/interact/forms.html#h-17.9.1). Ok, WAVE/WebAIM non gli piace, e si scopre [c'è un problema con il supporto UA] (http://webaim.org/discussion/mail_thread?thread=4307). Ma il suo suggerimento è solo _strange_, e non penso che abbia alcun reale vantaggio. [Almeno IE <= 8 non supporta più ID in aria-labelledby] (http://www.paciellogroup.com/blog/aria-tests/aria-labelledby-input.html). – sourcejedi

+0

questo link DEVE essere qui: https://developer.mozilla.org/en-US/docs/Accessibility/ARIA –

5

C'è sempre un problema di supporto UA con qualcosa di nuovo, ecco perché gli sviluppatori guardano al miglioramento progressivo. Questa tecnica ARIA offre la possibilità di eliminare l'attributo "for" e consente ad altri elementi di diventare parte della ricca forma. Queste tecniche diventeranno pratica comune.

+0

Focalizza l'elemento quando viene cliccato come fa l'attributo for? Suppongo che non lo siano i dispositivi –

+0

, anche se molti non lo fanno ancora ... – user2323922