JAWS is reading twice if aria-describedby referenced element is live region
Summary
I have a textarea with remaining character counter. Used aria-live="assertive" to announce the updated count.
Example:
- Go to https://www.w3schools.com/code/tryit.asp?filename=GKFPYHX1EUKZ
- TAB to the TextArea
In Chrome browser - on every character entry, JAWS is reading " Remaining : xxx characters" twice, like below. Please enter minimum 50 characters Remaining: 255 characters Type in text. Please enter minimum 50 characters Remaining: 254 characters Remaining: 254 characters Please enter minimum 50 characters Remaining: 253 characters Remaining: 253 characters
In IE browser - On very character entry, aria-describedby is read out. On a single character entry ( I typed "te" ), there is a discrepancy in the count. JAWS is reading previous count and then the updated count like below
Comments: Edit Please enter minimum 50 characters Remaining: 255 characters Type in text. Remaining: 255 characters Comments: Edit t Please enter minimum 50 characters Remaining: 255 characters Type in text. Remaining: 254 characters Comments: Edit te Please enter minimum 50 characters Remaining: 254 characters Type in text. Remaining: 253 characters
Expected result
aria-describedby reference should speak once. Updated text should be announced in IE browser same as Chrome
Additional Information
JAWS version and build number : 2020.1912.11 ILM
Operating System and version : Windows 10 64bit
Browser and version:
Chrome Version 86.0.4240.183 IE Version 11.1792.17134.0
In chrome, even though "Remaining : xxx characters" is read out twice, the count is correct but not in IE.
Double output in chrome is done because live region and aria-describedby (no JAWS bug!)
Solution: aria-describedby only on fixed hint and aria-live only on variable hint
In IE 11 the live region is not output at all. Instead, aria-describedby is output, but before each update. This are two IE 11 or JAWS bugs
@JAWS-test On every key stroke (typing a character), aria-describedby is read out in IE and Chrome. Is it expected when using JAWS ? I tested with the same sample in Firefox in Forms mode. aria-describedby is announced only once on initial focus. When I type in a character in the textarea, only updated aria live region is read.
In IE 11 the live region is not output at all. Instead, aria-describedby is output, but before each update. This are two IE 11 or JAWS bugs
@JAWS-test Sorry, didn't get you.. Could you please explain this again ?
Sorry, didn't get you.. Could you please explain this again ?
Bug No. 1: If you remove aria-describedby in your example, IE 11 will not output anything, so the live region has no effect.
Bug No. 2: when the value in aria-describedby is changed, the old and not the new value is output
Is it expected when using JAWS ?
This is a very good question. Unfortunately I don't know exactly, but I'll try to find out and get back to you
According to https://www.w3.org/TR/core-aam-1.2/#details-id-188 a change of aria-describedby should trigger an event at the Accessiblity API, so the output would probably be correct if aria-describedby was changed
I tested with the same sample in Firefox in Forms mode. aria-describedby is announced only once on initial focus. When I type in a character in the textarea, only updated aria live region is read.
This is another bug in JAWS, but only in textarea: as soon as the multiline input field contains text, the description (aria-describedby, aria-description, title) is no longer output, see https://github.com/FreedomScientific/VFO-standards-support/issues/201.
So to investigate your problem further, it would be better to use an <input type=text> instead of <textarea>, because with <input> the description is output correctly
Ran into this same situation today. Not using explicit aria-live but have aria-atomic="true" on the current count and aria-describedby on the full message. Not getting any output at all with Edge/JAWS. With NVDA it works fine except it also reads again upon tabbing out of the field for some reason.
same issue with JAWS from past 2 weeks, when clicked on the button/anchor element goes to the other page and read unnecessary content as shown:
Element: Start
JAWS reading
- Certify Page same page link Start 1. Certify Start 3. Certify same page link visited visited same page link Start 1. Certify
then changed to Elememt: Start
added role="button" to anchor element
JAWS reading Certify start button
but i have a issue that it reads the page title twice whenever page renders
Elememt:
when i use aria-hidden to title also its not working. Is there any solution?