iTunes Store is inaccessible with NVDA #734

Closed
nvaccessAuto opened this Issue Jun 28, 2010 · 10 comments

Projects

None yet

1 participant

@nvaccessAuto

Reported by jschmude on 2010-06-28 11:16
The iTunes 9 store is not accessible with NVDA. It uses Webkit internally, and NVDA is able to partially see some of the objects using the navigator, but it isn't being passed to a virtual buffer to allow review.

@nvaccessAuto

Attachment nvda.log added by jschmude on 2010-06-28 11:17
Description:
Log file demonstrating iTunes Store with NVDA (produced with iTunes 9.2 and NVDA R3586)

@nvaccessAuto

Comment 1 by jteh on 2010-06-28 12:21
Google Chrome does use !WebKit, but its accessibility implementation is completely separate due to its multi-process architecture. On Windows, Chrome's accessibility support is better than !WebKit's. For example, Chrome supports IAccessible2, whereas !WebKit does not.

!WebKit is open source and it uses MSAA only. Unfortunately, in order to create useable virtual buffers, we need a way to uniquely identify an object and then a way to instantiate an object from a unique identifier. !WebKit doesn't provide any way to do this.

I filed  WebKitBug:38882 to request that !WebKit implement support for IAccessible2, which would allow us to support it. Unfortunately, there has been no response at all so far.

@nvaccessAuto

Comment 3 by KevanGC on 2010-12-25 03:03
BUT HOW DO JAWS AND WINDOW EYES WORK WITH ITUNES?

@nvaccessAuto

Comment 4 by briang1 on 2010-12-25 09:37
Both those screenreaders need admin privs to be able to install their display chaining drivers. I suspect this might be one way they can 'see' the screen contents which nvda cannot do, if you want it to be portable at any rate.

I personally do not understand why Apple continue to use such code to write their site. I'd not even heard of webkit till Itunes came along. Considering their embedded technology for the blind on their devices it seems very strange behaviour!
However. None of this is going to get it to work if webkit devs wont make it work, and Apple won't alter what they do.
Should this be marked as needing external fix?

@nvaccessAuto

Comment 5 by jteh on 2010-12-25 23:55
To clarify, this has nothing to do with display hooks. Webkit is another web rendering engine like MSHTML or Mozilla Gecko.

Perhaps JAWS and Window Eyes have a slightly different design which allows them to partially work with Webkit. That said, from what I've heard, their access to Webkit is buggy, incomplete and otherwise far from perfect. We're not willing to expend our limited resources refactoring core parts of our code in order to implement a half-broken solution which solicits more complaints than it fixes. Webkit really does need to be made more accessible in order to make things work properly.

@nvaccessAuto

Comment 6 by jteh on 2011-11-18 15:54
There's some experimental code to support this in the bzr branch http://bzr.nvaccess.org/nvda/webKit/. Right now, it is incomplete, but does work to some extent. Everything I said above still applies; it is extremely difficult to support !WebKit well because of its poor Windows accessibility implementation. Snapshots for this branch are also available on the [wiki:Snapshots] page.

@nvaccessAuto

Comment 7 by kevinchao89 on 2011-11-21 09:29
When setting up iTUnes Match, it seems that throughout the entire process, NVDA  Webkit branch  has some serious issues, which  makes itt unusable.
Within sources, select iTunes Match;
F6 to web area, where NVDA will read what iTuens Match is all about wwith a button to subscribe;
TAB or ARROW

Expected: NVDA to get to subscribe button
Actual: TAB or ARROW will not get to subscribe button, but it's possible with quicknnav B.
Note: When tabbing around, NVDA will double-speak many links.

After selecting subscribe, inputting Apple ID credential, and hitting subscribe. THe resulting page which shows iTunes Match progress  is completely blank to NVDA, which includes using arrows, tab, oor ObjectNav.

SHIFT+F6 to sources, SHIFT+TAB several times to LCD area, where NVDA will read stop;
try to use flat review, arrows, or some way to read the text progress info in LCD and it's not possible. LC  D is what iTUnes uses as a status bar/progress bar.

Unfortunately, for iTunes Match, I had to switch to Window-Eyes which is officially supported by Apple.

@nvaccessAuto

Comment 8 by jteh (in reply to comment 7) on 2011-11-21 09:40
Replying to kevinchao89:

Actual: TAB or ARROW will not get to subscribe button, but it's possible with quicknnav B.

I don't follow. If you can get there with quick nav, you should be able to get there with arrows in browse mode; arrows can reach everything that quick nav can. Also, can you get to the button with tab if you force focus mode?

After selecting subscribe, inputting Apple ID credential, and hitting subscribe. THe resulting page which shows iTunes Match progress  is completely blank to NVDA, which includes using arrows, tab, oor ObjectNav.

Does NVDA+f5 help?

SHIFT+F6 to sources, SHIFT+TAB several times to LCD area, where NVDA will read stop;

try to use flat review, arrows, or some way to read the text progress info in LCD and it's not possible. LC  D is what iTUnes uses as a status bar/progress bar.

I've not used iTunes Match, but this LCD area is used elsewhere; e.g. iPhone update. It normally reads just fine when I press NVDA+tab. What exactly does NVDA+tab say?

@nvaccessAuto

Comment 9 by jteh on 2011-12-02 04:40
Fixed focus tracking, including tabbing and double speaking when cursoring to focusable elements. Some other fixes as well.

Still can't access editable text fields properly. !WebKit doesn't seem to use the normal system caret, so we can't track it, and display model behaves shakily at best.

@nvaccessAuto

Comment 10 by jteh on 2011-12-07 10:09
Initial support merged in cb9c368. New tickets should be opened for any problems. However, please be aware that even getting this far was incredibly difficult due to !WebKit's poor accessibility implementation in Windows and many ugly hacks were used. Getting much further is probably not possible without enhancements in !WebKit.
Changes:
Milestone changed from None to 2012.1
State: closed

@nvaccessAuto nvaccessAuto added this to the 2012.1 milestone Nov 10, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment