Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

aria tags - force screen reader to read some text

on my website a user can click on a "livechat" button and a chat window appears. I was looking for some text to get read out (for accessibility users with a screen reader)

When the chat window appears the focus goes to the input text box - where users can enter their text to chat to an advisor. I have a div that is positioned a way off the screen - and I would like to get the text read out. I've tried aria-live=assertive, but no luck - doesn't get read out.

<div id="sreader" aria-live="Assertive"> if you use a screen reader you can call this number 0800 123 456</div>

Any ideas - how that can be forced to get read out?

Thanks

like image 648
thegunner Avatar asked May 24 '16 10:05

thegunner


People also ask

How can we enforce the screen reader to read some text when an event occurs?

An easy way to force most screen readers to start reading from a point is to give it focus. If you make the element focus-able (by giving it a tabindex ), then explicitly give it focus ( myElement. focus() ), the screen reader should start reading from there.

Do screen readers read aria labels?

The aria-label attribute provides the text label for an object, such as a button. When a screen reader encounters the object, the aria-label text is read so that the user will know what it is.

How do you implement screen reader accessibility?

Use alt text. If alt text is not provided, screen readers will ignore the image or read the image file name. To make your pages accessible, always add clear and descriptive alt text to each piece of non-text content, namely images, videos, icons, and embeds.

Which tag is read by screen readers?

The <caption> element and <table> summary attribute both do similar jobs — they act as alt text for a table, giving a screen reader user a useful quick summary of the table's contents. The <caption> element is generally preferred as it makes it's content accessible to sighted users too, who might also find it useful.


1 Answers

Support for aria-live is spotty.

Seeing a code example would be handy, but if you are always putting focus on the field then perhaps you want to use aria-label with some good messaging instead as this is better supported and will be spoken when the field gets focus.

Eg:

<label for="foo">Field Label</label>
<input type="text" id="foo" aria-label="Field Label. Note: If you are using a screen reader…">

Note that this still announces the field to the user and completely overrides the text in the <label>. This is why I included it in the aria-label.

Please bear in mind that this may not be the best approach, so you should test it with users. However, it involves fewer elements and puts the message directly where you seem to need it without any need to rely on scripting.

  • Probably worth a read: Screen reader support for ARIA live regions
  • An example from JAWS: ARIA (Accessible Rich Internet Applications) Live Regions
like image 197
aardrian Avatar answered Nov 11 '22 15:11

aardrian