Issue metadata
Sign in to add a comment
|
Label on iframe breaks accessible text exposure |
||||||||||||||||||||||||
Issue descriptionVersion: 53.0.2747.0 canary (64-bit) OS: Windows 10 64 bit User STR with NVDA: 1. Open this URL: data:text/html,<iframe aria-label="label" src="http://www.google.com/foo"></iframe> 2. Read the document with the arrow keys. Expected: The content of a Google 404 page. Actual: Just the single word "label". When there's a label, IAccessibleText exposes the text of that label and no embedded objects, so NVDA renders that text only. Chrome should behave the same as when there is no label. Right now, this means IAccessibleText should expose nothing; i.e. nCharacters should return 0, text(0, -1) should return NULL. Note that Firefox doesn't implement IAccessibleText at all for frame accessibles. This is also a valid (and probably more elegant) solution. However, which you choose isn't particularly important. Original NVDA issue: https://github.com/nvaccess/nvda/issues/5994
,
May 25 2016
Wouldn't it be more conformant to the spec to return the text inside the iframe? I believe that IAccessibleText is supposed to return the visible text under the object. Isn't it better to have IAccessibleText working on all containers? It's currently implemented for the document object for example.
,
May 25 2016
If anything, it should expose an embedded object for the document child; i.e. 1 0xFFFC character and IAccessibleHypertext::hyperlink(0) should return the document. That would be most consistent with the rest of the model, yes. That said, it's a bit controversial because you could argue a frame is special and doesn't really have "text". Because Firefox does this in a few places, NVDA will walk accessible children if IAccessibleText isn't implemented or returns nothing.
,
May 25 2016
Yes, I agree that if anything it should return an embedded object character for the iframe and certainly not the label. Same for the other cases. What I wasn't sure about is cases where there is a control for which Firefox doesn't expose IAccessibleText but it might have text in it. For example, an ARIA slider might be written with more HTML tags inside it which should be exposed as text. That's why I prefer from an engineering standpoint not to turn off IAccessibleText for any object, because it's not clear for me what can contain text and what not.
,
May 25 2016
Tested in Win10 and Win7 on latest canary 53.0.2748.0. unable to repro the issue. displaying content of Google 404 page. please find the attached screenshot and confirm from your side. Thank you.
,
May 26 2016
This is an accessibility issue that only occurs when a Windows screen reader is being used. I'm taking this on.
,
Jun 8 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/a4f893a3ca5cd9fd001938fb455f1e0cde2877a5 commit a4f893a3ca5cd9fd001938fb455f1e0cde2877a5 Author: nektar <nektar@chromium.org> Date: Wed Jun 08 16:04:35 2016 Improves computation of IAccessible2 Hypertext. 1. Ensures that children that are in a different subtree are included in IA2 Hypertext. 2. Stops exposing the value of a rich text control in IA2 Hypertext. BUG= 614570 TESTED=NVDA,browser test R=dmazzoni@chromium.org Review-Url: https://codereview.chromium.org/2040523002 Cr-Commit-Position: refs/heads/master@{#398578} [modify] https://crrev.com/a4f893a3ca5cd9fd001938fb455f1e0cde2877a5/content/browser/accessibility/browser_accessibility_win.cc [modify] https://crrev.com/a4f893a3ca5cd9fd001938fb455f1e0cde2877a5/content/browser/accessibility/browser_accessibility_win.h [modify] https://crrev.com/a4f893a3ca5cd9fd001938fb455f1e0cde2877a5/content/browser/accessibility/browser_accessibility_win_unittest.cc [modify] https://crrev.com/a4f893a3ca5cd9fd001938fb455f1e0cde2877a5/content/browser/accessibility/dump_accessibility_tree_browsertest.cc [add] https://crrev.com/a4f893a3ca5cd9fd001938fb455f1e0cde2877a5/content/test/data/accessibility/html/contenteditable-with-no-descendants-expected-android.txt [add] https://crrev.com/a4f893a3ca5cd9fd001938fb455f1e0cde2877a5/content/test/data/accessibility/html/contenteditable-with-no-descendants-expected-mac.txt [add] https://crrev.com/a4f893a3ca5cd9fd001938fb455f1e0cde2877a5/content/test/data/accessibility/html/contenteditable-with-no-descendants-expected-win.txt [add] https://crrev.com/a4f893a3ca5cd9fd001938fb455f1e0cde2877a5/content/test/data/accessibility/html/contenteditable-with-no-descendants.html [modify] https://crrev.com/a4f893a3ca5cd9fd001938fb455f1e0cde2877a5/content/test/data/accessibility/html/iframe-coordinates-cross-process-expected-blink.txt [modify] https://crrev.com/a4f893a3ca5cd9fd001938fb455f1e0cde2877a5/content/test/data/accessibility/html/iframe-coordinates-cross-process-expected-win.txt [modify] https://crrev.com/a4f893a3ca5cd9fd001938fb455f1e0cde2877a5/content/test/data/accessibility/html/iframe-cross-process-expected-blink.txt [modify] https://crrev.com/a4f893a3ca5cd9fd001938fb455f1e0cde2877a5/content/test/data/accessibility/html/iframe-cross-process-expected-mac.txt [modify] https://crrev.com/a4f893a3ca5cd9fd001938fb455f1e0cde2877a5/content/test/data/accessibility/html/iframe-cross-process-expected-win.txt [modify] https://crrev.com/a4f893a3ca5cd9fd001938fb455f1e0cde2877a5/content/test/data/accessibility/html/iframe-cross-process.html [modify] https://crrev.com/a4f893a3ca5cd9fd001938fb455f1e0cde2877a5/content/test/data/accessibility/html/iframe-expected-blink.txt [modify] https://crrev.com/a4f893a3ca5cd9fd001938fb455f1e0cde2877a5/content/test/data/accessibility/html/iframe-expected-mac.txt [modify] https://crrev.com/a4f893a3ca5cd9fd001938fb455f1e0cde2877a5/content/test/data/accessibility/html/iframe-expected-win.txt [modify] https://crrev.com/a4f893a3ca5cd9fd001938fb455f1e0cde2877a5/content/test/data/accessibility/html/iframe.html
,
Jun 8 2016
|
|||||||||||||||||||||||||
►
Sign in to add a comment |
|||||||||||||||||||||||||
Comment 1 by ja...@nvaccess.org
, May 25 2016