<input type="image"> sometimes not rendered in NVDA browse mode
Categories
(Core :: Disability Access APIs, defect)
Tracking
()
People
(Reporter: Jamie, Unassigned)
References
Details
STR (with the NVDA screen reader):
- Open this URL:
data:text/html,<input type="image" src="https://via.placeholder.com/100x100.png" alt="blah"> - Press control+r to ensure the image isn't cached.
- Press control+home to move to the top of the document and read the first line.
- Expected: NVDA should say, "button blah"
- Actual: NVDA says, "blank"
If this doesn't reproduce the first time, repeating steps 2 and 3 a few times should reproduce it.
This is similar to bug 1596007. The button gets a width and height of 0 while the image is loading (before we know its size), so NVDA treats it as invisible and doesn't render it. When the size does become available, no event is fired. We should do the same as in bug 1596007; i.e. it should be invisible and then fire a stateChange event when we know its size. This is going to be a bit tricky because input type="image" uses HTMlButtonAccessible, which doesn't know anything about images, can't share the code from ImageAccessible which deals with this and doesn't return true for isImage().
Impact: This causes PayPal donate buttons to sometimes be inaccessible to NVDA users.
Originally reported as NVDA issue: https://github.com/nvaccess/nvda/issues/11219
Description
•