Reported by jmuheim on 2015-10-05 14:35
I just noticed that although the aria-label, aria-labelledby and aria-describedby attributes are said to work on every element (see http://www.w3.org/TR/wai-aria/states_and_properties#aria-describedby), they only seem to work for a few elements like a, and not for e.g. div or p in NVDA and JAWS.
I have created a small codepen to demonstrate the issue (browse it using browse and focus mode):
For example, in NVDA, on the a element, the aria-label and aria-labelledby seem to work in both browse and focus mode. But aria-describedby is only announced in focus mode, not in browse mode.
For the input element, none of the attributes seem to work in browse mode, but all work in focus mode.
For "bare" text elements like p or div, none of the attributes seem to work.
In JAWS, it's quite similar behaviour, but at least for the p element, when there is an aria-describedby, it announces that a description can be read by pressing "JAWS + alt + r".
I don't really see a clear pattern for this, so I wonder what are the general rules in NVDA on how to use these attributes? Or better: why don't they simply work for every element, as the spec proposes?
Comment 1 by jteh on 2015-10-05 23:51
They do in fact "work" on every element. However, "work" means that they label/describe an element. The spec does not say anything about whether/how they should affect the content that is rendered in browse mode or equivalent. I've already covered this on several occasions (e.g.e #1354), but here are a few quick points as to why we don't want to do this unconditionally:
Comment 2 by jmuheim on 2015-10-21 09:05
Thanks for explaining. I asked the same question on StackOverflow, there's some non-screenreader-speicific information, too: