0
votes

I can't work out how to get Chromevox read an element once you have changed focus to it via Javascript. Take the example found at OpenAjax. When you click on the Show topic 1 button the controlled element is expanded and focus is moved to it. However in Chromevox it does not read the content of the element just the aria-labelledby.

To get Chromevox to read the content of the element after it has been expand I have to move out and back in again. Not a very good user experience.

Is this an issue to do with Chromevox or is there a better way to approach this?

Note: ignore the other three examples they have typos in their aria-labelledby attributes and thus don't function correctly.

1

1 Answers

1
votes

The ajax example is not a good one to mimic. In addition to the t2/m2 typo you mentioned, they have competing labels. There's a (hidden) <div> that contains text ("Topic 1 is all about being...") and there's an aria-labelledby.

According to the accessible name computation rules, https://www.w3.org/TR/accname-1.1/#step2, the aria-labelledby is processed in step 2.B.first-bullet and then the process is done. The text inside the <div> should be ignored.

If there were not an aria-labelledby, then you would get to step 2.G and the inner text would be the accessible name (and read by a screen reader).

So, you are seeing/hearing a conflict and it may depend on the how the browser interprets these rules as to what text is read by the screen reader.

NVDA reads both the aria-labelledby and the text.

JAWS reads only the aria-labelledby, which is technically correct.

It sounds like Chromevox is doing the same thing as JAWS, which is correct.