Open Bug 1647506 Opened 5 years ago Updated 5 years ago

<input type="image"> sometimes not rendered in NVDA browse mode

Categories

(Core :: Disability Access APIs, defect)

defect

Tracking

()

People

(Reporter: Jamie, Unassigned)

References

Details

STR (with the NVDA screen reader):

  1. Open this URL:
    data:text/html,<input type="image" src="https://via.placeholder.com/100x100.png" alt="blah">
  2. Press control+r to ensure the image isn't cached.
  3. 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

See Also: → 1596007
You need to log in before you can comment on or make changes to this bug.