standards-support icon indicating copy to clipboard operation
standards-support copied to clipboard

JAWS is reading twice if aria-describedby referenced element is live region

Open keerthanameka25 opened this issue 5 years ago • 12 comments

Summary

I have a textarea with remaining character counter. Used aria-live="assertive" to announce the updated count.

Example:

  1. Go to https://www.w3schools.com/code/tryit.asp?filename=GKFPYHX1EUKZ
  2. 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

keerthanameka25 avatar Nov 06 '20 12:11 keerthanameka25

In chrome, even though "Remaining : xxx characters" is read out twice, the count is correct but not in IE.

keerthanameka25 avatar Nov 06 '20 12:11 keerthanameka25

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

JAWS-test avatar Nov 06 '20 12:11 JAWS-test

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 avatar Nov 06 '20 12:11 JAWS-test

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

keerthanameka25 avatar Nov 06 '20 14:11 keerthanameka25

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 ?

keerthanameka25 avatar Nov 06 '20 14:11 keerthanameka25

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

JAWS-test avatar Nov 06 '20 15:11 JAWS-test

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

JAWS-test avatar Nov 06 '20 15:11 JAWS-test

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

JAWS-test avatar Nov 06 '20 15:11 JAWS-test

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

JAWS-test avatar Nov 07 '20 04:11 JAWS-test

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.

ArmandFrvr avatar Nov 13 '21 01:11 ArmandFrvr

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

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

@(ViewBag.Title != null ? string.Format("{0} | organisation | website", ViewBag.Title) : "Organisation | website")

when i use aria-hidden to title also its not working. Is there any solution?

BegginnerCoder123 avatar Feb 23 '23 07:02 BegginnerCoder123