Monday, February 11, 2013

Accessible Mozilla: Tech overview of Firefox 20

In short, what's new in upcoming Firefox 20.

You might need to know


During a document loading we may create a temporary document (about:blank) for a short time and then create the requested document. The temporary document is a normal document and behaves as any other document (in particular we fire document load complete event on it). But since it doesn't exist for a long time then it shouldn't get a focus (at least there's no percedence). If the temporary document existence is likely a problem for your application then please contact us.

Apparently this behavior was introduced in Firefox 20, at least that's the first time when we caught it (refer to bug for details).

ARIA


ARIA role combobox exposes an accessible value computed from the content of selected item.

<div role="combobox">
  <div role="textbox"></div>
  <div role="listbox">
    <div role="option">1</div>
    <div role="option" aria-selected="true">2</div>
    <div role="option">3</div>
  </div>
</div>
 
In this example the accessible value of combobox equals "2". I'm not sure whether this feature has any good effect on ARIA evolution in the web since underlying textbox and listbox are supposed to handle all user input. It was done rather for consistence between HTML and ARIA widgets (see bug).

HTML


We started to build context dependent trees in more cases (refer to bug for details). In particular we don't create list item accessibles for HTML li, dl and etc if they are children of presentational list. For example:

<ul role="presentation">
  <li>item</li>
</ul>

We don't create an accessible for HTML li element in this case.

Also we reject to create HTML table cells if they don't have a table row as a parent. This behavior caused a certain problem. I hope we will be able to backport the fix into Firefox 20.

SVG


We introduced basic SVG accessibility. SVG graphic elements like circle or rect are mapped to accessibility API as graphic role accessibles (see bug). Accessible name and description for these elements are computed from child SVG desc and title elements (see bug for more info).

XUL


We stopped to create accessibles for XUL deck element itself and its child elements if they don't belong to the selected panel. Basically we rolled back to the behavior we had prior Firefox 16. We did that because we were reported that the behavior can be a problem for existing code. In particular, it didn't make a good job for AddBlock+ and JAWS users (see bug).

ISimpleDOMNode


As I wrote before ISimpleDOMNode was implemented as tear off. Let us know if this hits you.

Bug fixes


Windowless/inaccessible plugins don't expose NULL child in MSAA tree anymore (see bug).

Also we fixed an intermittent bug that made us to ignore ARIA role on the body of the document (see bug).

We fixed the case when caret offset was misreported.

No comments:

Post a Comment