Tuesday, November 18, 2014

Accessibility goes into DOM

PWFG group suggested two new methods for DOM Element interface. These methods reflect role and name accessibility concepts, and corresponding methods were named as computedRole and computedLabel.

I have bunch of issues with the approach I wanted to outline here. Just to keep things in one place.

The purpose

I've been told that primary reason is a testing propose, but having role and name only is not enough to run UAIG tests or any accessibility automation tool since it would require other accessibility properties.

Also they say that it might be used for non accessibility proposes. I realize that semantics, the ARIA adds, can be used by non assistive technologies. In Firefox we have a large number of non AT consumers but we don't have a good idea in most of cases what they are for. So I don't really have the use case, and thus it's hard to say whether accessible role and name only works well for non a11y proposes.

Concerning to assistive technologies I think they also need a much larger API.

Blowing the DOM

Anything useful should require extra accessible properties as I said above. These are accessible description, states, relations, ability to navigate the hierarchy etc. That means sooner or later the Element interface has to be changed to a great extent. Check out AtkObject to get an idea about possible changes.

In beginning of times accessibility interfaces was built on top of DOM and later they were turned into full APIs. Now we are faced to backward process, accessibility APIs are getting back to DOM. I'm not sure if that's a good idea because accessibility tasks are something very specific, and accessibility API might be not suitable for common needs of web apps.


Not every semantically meaningful piece on the screen has a DOM node, for example, list bullets don't necessary have DOM elements associated with them. So Element based accessibility API is too restrictive to fit the requirements of the assistive technologies.


Last but not least is performance issue. In most of browsers the accessibility engine is kept separately and it gets running on demand. If accessibility is merged with the DOM then nothing tells the user this method may trigger heavy accessibility computations and make his app slower. Surely the browsers will learn how to get smarter but the approach will have a perf hit either way.

What's it going to be then, eh?

The idea is to provide a separate accessibility interface. If you like it then it can be done by parts, for example, introduce role and name only for the first round same as the original proposal says. Later you can think of adding all other properties.

This idea was welcomed initially, then later it was rejected as being too complex and accessibility centric. But - and that's most important thing - it doesn't have disadvantages the Element approach has.

Wednesday, November 5, 2014


This might be a little bit strange post. It's not about the web, it's about people working at Yandex. Yandex is a largest IT company in Russia (some also refer to it as Russian Google). They invited me to visit their YaC conference this year to talk about accessibility and the web. I was curious about Yandex and I was interested in update of the accessibility in Russia so I decided to go.

The YaC conference itself was surprisingly short, one day long. Otherwise it looked very much the same as any other IT conference I visited. Maybe it felt a bit overcrowded, about 1500 people, long lines to coffee tables and some manoeuvres to avoid collisions with other people on your way. But that must be quite in Moscow spirit, a much overcrowded city.

I visited the front-end section on the conference. Front-end developers are guys who create accessibility use cases and I had a chance to learn something new. Also I was supposed to participate in panel discussion scheduled at the end of the section. Some talks were interesting, I have a rare chance to look at things from "other" side (after all I'm the browser guy), but some talks were rather strange. For example, one speaker said that the web standards development in Netscape times looked the following way:

I know few persons from Netscape times and no one of them looked that way so I'm sort of skeptic on the statement made. These talks didn't have any time reserved for questions so I was left behind with my comments. Yeah, I have a chance to say it here :)

Next day Yandex invited me to visit their office to give a talk about accessibility. I didn't have a good idea what kind of audience I will talk to so I planned a general talk. I talked about accessibility, desktop, mobile, web, about technologies and future, and I've got a bunch of interesting questions. I've been told that over one hundred persons participated (on-site and off-site) and that was exiting, partially because I didn't really expect the expressed interest.

Russia has WCAG based recommendations but afaik there's no laws that would force business to develop accessible solutions. I realize that Russia is very dynamic country and tomorrow you can get a new law requiring you to make your apps and services accessible but I don't think that's the case. I would guess there are some social stuff like earning kudos making the whole point but I didn't get any evidence of that. They might be targeting to new markets or this is some cultural feature. But they didn't show me their secret labs where they grow up the accessibility awareness so I failed to identify the reasons :)

Anyway, people at Yandex are interested in accessibility as matter of the fact and they know much more about accessibility I could guess, for example, they know well a11y tricks how to make web stuff accessible. But - and that was my impression - they are ready to learn and use any accessibility technology/standard but they are still behind in participation in creation and development of it. You have to share your ideas and thoughts, otherwise your voice is lost.

(Probably out of context but still representative example). I had a chat with one Yandex guy, I said:
- Guys, you do create the web.
- No, we don't.
- But you created so many cool web services, you have so many users.
- (skeptically) Ok, maybe runet.

So yeah, I think they should chime in into accessibility world more, after all they create the use case and that's where accessibility grows up from.