JSFoundation / standards

Giving web developers a voice in the standards process
247 stars 26 forks source link

Inert / stack #43

Open bkardell opened 8 years ago

bkardell commented 8 years ago

The HTML Standard defines the concept of an inert subtree, it was pointed to by dialog to explain how it worked (you should not be able to interact with the non-dialog portions of the tree, they become 'inert'). There was at one point an attribute inert documented. By & large though dialog wasn't implemented and this bug was opened in early 2014. One result was that inert as an attribute was removed for lack of implementer interest and work began instead on exposing a stack of blocking elements to describe the dialog behavior. However, there are numerous cases spelled out in that bug (see comment #12 for some) which seem like they would not be covered. Rob Dodson from the chrome team wrote up this a few days ago. It seems there is a fair amount of support in the a11y community for reviving some easy to use inert concept, I'd like to get more involved in that, support the idea... Especially where we can do so by testing the waters with a prolyfill.

There is a prolyfill under the GoogleChrome github, but it would seem that it is currently not entirely complete with what a11y folks think it should do (I think it doesn't set aria-hidden for example). Can probably send a pull to get it in good shape as we agree what shape that is.

Anyone have thoughts on any of this?

dmethvin commented 8 years ago

The blocking elements idea sounds like it would be a clean way to handle the problem. I don't know how many times I've seen modal dialogs implemented incorrectly, it's rare for people to get all the issues right.

AurelioDeRosa commented 8 years ago

I was a big fun of the inert attribute, so I'd like to see some on work on it and possibly help however I can.

bkardell commented 8 years ago

Alice Boxhall, Rob Dodson and I worked on this... https://alice.github.io/inert/inert.html

AurelioDeRosa commented 8 years ago

Nice test page and description. I think it's pretty straightforward. Is there anything I can help with?