18:32:00 RRSAgent has joined #aapi 18:32:00 logging to http://www.w3.org/2016/03/15-aapi-irc 18:32:02 RRSAgent, make logs world 18:32:02 Zakim has joined #aapi 18:32:04 Zakim, this will be 18:32:04 I don't understand 'this will be', trackbot 18:32:05 Meeting: Accessible Rich Internet Applications Working Group Teleconference 18:32:05 Date: 15 March 2016 18:35:48 chair: Joseph_Scheuhammer 18:35:52 agenda: this 18:36:12 agenda+ ACTION-1681 (Joseph, Amelia) Editorial change(s) clarifying inclusions rules and/or exclusion rules. 18:36:18 agenda+ ACTION-2012/ACTION-2013 (Joseph, Cynthia) UIA mappings for landmark roles, pull request merged: https://github.com/w3c/aria/pull/272 18:36:28 agenda+ ACTION-1569/ACTION-2032/ISSUE-540 (Cynthia/Jason) Section on AAPI differences - my response to Jason's latest, and including Cynthia's new example. 18:36:33 agenda+ ACTION-2041 (Joseph/James) AXAPI mapping for role="application", specifically change to AXLandmarkApplication subrole. 18:36:40 agenda+ ACTION-1668 (Rich/Alex) Add IA2_ROLE_LANDMARK for IA2. 18:36:55 agenda+ ACTION-1541 (Joseph/Joanie) AXAPI mapping for aria-modal property -- update progress. 18:37:08 agenda+ Triage: https://www.w3.org/WAI/ARIA/track/products/23 (start: ACTION-1686) 18:37:46 agenda+ Triage core-aam bugzilla https://www.w3.org/Bugs/Public/buglist.cgi?component=Core%20AAM&product=ARIA 18:38:06 agenda+ Triage accname-aam bugzilla https://www.w3.org/Bugs/Public/buglist.cgi?component=AccName%20AAM&product=ARIA 18:38:18 agenda+ be done. 18:38:29 agenda? 18:45:59 I have made the request to generate http://www.w3.org/2016/03/15-aapi-minutes.html clown 18:57:14 present+ Joseph_Scheuhammer 19:00:07 AmeliaBR has joined #aapi 19:01:06 cyns has joined #aapi 19:02:10 present+ Bryan_Garaventa 19:02:18 present+ Joanmarie_Diggs 19:02:27 present+ AmeliaBR 19:02:31 Rich has joined #aapi 19:02:31 scribenick: joanie 19:02:48 present+ Rich_Schwerdtfeger 19:03:12 bgaraventa1979 has joined #aapi 19:03:49 present+ Bryan_Garaventa 19:04:36 Zakim, take up item 1 19:04:36 agendum 1. "ACTION-1681 (Joseph, Amelia) Editorial change(s) clarifying inclusions rules and/or exclusion rules." taken up [from clown] 19:04:51 JS: Amelia is here for this action. 19:04:53 action-1681 19:04:53 action-1681 -- Joseph Scheuhammer to Propose new wording, as an editorial change only to clarify the inclusion rules in section 5.1.2 -- due 2015-09-15 -- OPEN 19:04:53 http://www.w3.org/WAI/ARIA/track/actions/1681 19:05:03 http://w3c.github.io/aria/core-aam/core-aam.html#exclude_elements2 19:05:06 JS: This action is only a small slice of the issue. 19:05:19 JS: At the above spec URL, there is the excluding elements content. 19:05:27 Elements with none or presentation as the first mappable role in the role attribute string, according to the rules for the none and the presentation role defined in Accessible Rich Internet Applications (WAI-ARIA) 1.1 [WAI-ARIA]. 19:05:29 Also related discussion here: https://github.com/w3c/aria/issues/136 19:06:06 JS: I noticed just recently that the first bullet point (above), has this catch-all that I missed. 19:06:30 JS: So what the Core AAM is doing is saying none/presentation is excluded. 19:06:39 JS: But this is modified by the rules in the spec. 19:06:57 JS: The advantage is that the statement in the Core AAM is always correct. :) 19:07:15 JS: The disadvantage is that one needs to consult with the spec to see what the state is. 19:07:24 RS: (Asks about role-specific attributes) 19:07:52 JS: Here is the spec text about global attributes. 19:07:53 "the user agent MUST always expose global WAI-ARIA states and properties to accessibility APIs, even if an element has an explicit or inherited role of presentation." 19:07:59 JS: (reads text above) 19:08:07 cyns_ has joined #aapi 19:08:17 JS: So you want to add something for role-specific states and properties? 19:08:19 RS: Yes. 19:08:21 JS: Where? 19:08:54 RS: If you have a layout table and wanted to give one of the rows the role of region, that's doable. 19:09:02 RS: And that would cause them to be included. 19:09:12 RS: And that's covered in the spec. 19:09:26 RS: We need to cover both roles and their states and properties. 19:09:57 RS: We need to say if you have any role attribute, whether inherited or not, it is included in the tree. 19:10:07 ABR: This gets into the issue they had with the HTML mapping. 19:10:31 ABR: A div/span without a role, but an aria-label needs a role change to be included in the tree. 19:10:43 JS: Firefox always includes divs even without a label. 19:10:47 q? 19:10:53 CS: IE did as well; I don't think Edge does. 19:11:05 JS: So non-interoperability. 19:11:18 ABR: I'm not sure we want to recommend every div in a document gets exposed. 19:11:26 ABR: That would be painful in some documents. 19:11:40 JS: Let's say all divs are not, but if you add a label it must be included. 19:11:52 JS: In the case of ATK, the role would have ROLE_SECTION and a label. 19:12:12 CS: It's group in UIA and IA2, I think. 19:12:34 http://w3c.github.io/aria/html-aam/html-aam.html 19:12:39 http://rawgit.com/w3c/aria/master/html-aam/html-aam.html 19:12:55 http://rawgit.com/w3c/aria/master/html-aam/html-aam.html#el-div 19:14:12 blade 19:14:57 s/blade// 19:15:23 JS: They do have, for IA2 and ATK, may not have accessible object if there is no semantic meaning; otherwise it's a section. 19:15:43 JS: But if it's included due to the presence of a label, and there's not another role, it's ROLE_SECTION. 19:16:02 ABR: There's the general issue of which element should be included or excluded. 19:16:22 ABR: Another issue is if you're forcing something to be included and it lacks a role, what role should it be given? 19:16:39 RS: You typically fall back on the host language. 19:17:03 JS: You also look at the relevant AAM to figure out the role for the host language element. 19:18:00 (Brief discussion that you can display script, which is not normally exposed, via CSS) 19:19:10 RS: If you have an ARIA attribute.... 19:19:16 JS: A non-global one? 19:19:23 RS: Are global already addressed? 19:19:27 JS: Yes. 19:19:34 CS: It would be nice to have it all in one place. 19:19:47 JS: I could summarize what the role="presentation" spec text says. 19:20:11 JS: For instance, you can override presentation with a new role. That's covered by the spec. 19:20:22 JS: (Reads example regardring aria-level) 19:20:31 CS: Does anyone else think this is way too complicated? 19:20:36 Group: Yes. 19:20:51 "aria-level is not a global attribute and would therefore only apply if the element was not in a presentational state." 19:20:51 ABR: Basically, global attributes apply regardless of roles. 19:21:06 ABR: Role-specific attributes do not apply if role="none". 19:21:16 JS: That's covered by the spec text I quoted. 19:21:29 JS: The very next sentence is 19:21:56 "If an element with a role of presentation is focusable, user agents MUST ignore the normal effect of the role and expose the element with implicit native semantics" 19:22:02 RS: Do we need anything in the mapping spec? 19:22:32 CS: I think it's good to copy it there, because it's not clear from how it's currently written that stuff with role="presentation" might wind up in the tree. 19:22:41 JS: That's why I raised the issue last year. 19:23:20 ABR: Editorial suggestion: It's not obvious that there is all this information under role="presentation" that is not pointed out by role="none". 19:23:39 ABR: There might need to be some top-level section that everything can point to. 19:23:44 CS: That's a good idea. 19:24:01 CS: Is there anything we can do in ReSpec (or elsewhere) to include shared text? 19:24:07 JS: We do that with the glossary. 19:24:22 CS: Maybe it would be good to do this for the what's-in/what's-out content. 19:24:44 ABR: In the SVG AAM, there are some areas where I need to manually include text that is in Core AAM. 19:24:53 CS: It would be nice to have this in HTML AAM as well. 19:25:11 RS: Why don't we raise an issue against ARIA to separate out the common text? 19:26:07 ABR: So we resolved what role should be exposed if overriding role of none (goes back to host language) 19:26:21 ABR: Confirmed focusable elements as one role="none" is ignored. 19:26:31 ABR: On the mailing list we discussed when aria-hidden should be ignored. 19:27:06 JD: Link to the thread? 19:27:54 https://lists.w3.org/Archives/Public/public-aria/2016Mar/0043.html 19:28:05 ABR: That email (above) links to the other threads. 19:28:48 RS: Here is the issue 19:28:50 https://www.w3.org/WAI/ARIA/track/issues/1017 19:28:55 issue-1017 19:28:55 issue-1017 -- Separate out text from role="none" and "presentation" so that a single location may be referenced in Core-AAM -- raised 19:28:55 http://www.w3.org/WAI/ARIA/track/issues/1017 19:29:16 RS: I personally won't be looking at that for a while because I'm working on key shortcuts. 19:29:23 JS: Where is this text going to go? 19:29:31 RS + ABR: Somewhere in the ARIA spec. 19:30:32 JS: One other thing: I've not yet looked at the spec to see if it's covered, but.... 19:30:47 JS: In Core AAM, it says that if it causes an accessibility event it has to be in the tree. 19:30:52 CS: That's not possible. 19:31:18 CS: For instance, if you put a click handler on the page, all children could have an event. 19:31:29 ABR: Events bubble. There are also text mutations. 19:32:00 CS: There are a couple of tricky things. UIA has no concept of bubbling. 19:32:31 CS: The other thing is that if you have a click handler on the body, you don't want to expose every single element in the DOM. 19:32:41 CS: So the text that is currently in the spec doesn't reflect reality. 19:33:07 CS: It does express a problem which needs to be solved, namely how to figure out the elements which should be clickable and expose them. 19:33:22 JS: I'm thinking aria-selected. 19:33:35 JS: If aria-selected changes, you get an accessible state-changed event. 19:33:47 http://w3c.github.io/aria/core-aam/core-aam.html#mapping_events_state-change 19:33:48 CS: If you're talking about ARIA attributes changing, yes, that is true. 19:34:02 CS: But if you're talking about DOM events.... 19:34:10 JS: I'm talking about accessibility events. 19:34:27 CS: For things like focus, there are. But for input events like click and keypress, they can bubble. 19:34:43 JS: The link above is about accessibility events for state and property changes. 19:35:05 ABR: For most events which are about the accessibility API will be handled as a result of the role and other ARIA properties. 19:35:44 ABR: As far as general DOM events or text mutation events, it needs to become a requirement on the user agent to bubble them up to the nearest element which is exposed in the accessibility tree and fire the event on that element. 19:36:07 CS: That's close to what we've been thinking about. 19:36:27 CS: But it gets tricky when the element with the input event is not in the tree. 19:36:41 CS: In other words, that the div that got clicked on is not in the tree. 19:37:04 CS: We can express the x,y coordinates, but I'm not sure how the ATs will find it. 19:37:25 ABR: The author should give the element some semantic relevance, or a tabindex, etc. 19:37:50 ABR: What's the consequence if something says you clicked on this paragraph instead of this em element in a span in a paragraph? 19:37:59 ABR: Is there a usability issue? 19:38:11 CS: That's a good question. 19:38:24 CS: The accessibility APIs were not designed for this scenario. 19:39:06 CS: If you have a thing that looks programmatically like a range of text, but is supposed to act like a button, it's an authoring error if it doesn't have (say) a tabindex of -1. 19:39:35 ABR: A more practical example: A diagram like a chart where you can hover over data points and have information about that element show up. 19:40:02 ABR: Chances are that the author will put just one event handler that looks at the target and gets the data. 19:40:21 ABR: This is a realistic case where the exact element might matter and need to be communicated. 19:40:43 CS: In that case, if the reference points have tabindex of -1, or are links or buttons or something else interactive, they'd be in the tree. 19:40:52 CS: That is the advice I'd give the author. 19:41:37 ABR: That sounds like a natural approach that anything with semantic meeting has a property that causes it to be included. 19:42:33 CS: I think that's the right approach. 19:42:53 CS: Bubbling/pass-through mechanisms will not be done in time for 1.1. 19:43:08 ABR: On the Accessibility API side, or the DOM side? 19:43:13 CS: Either one. 19:43:24 CS: Are there implications there with respect to CR? 19:43:49 ABR: Where it's currently defined is 19:44:12 ABR: (Reads from the text in Core AAM) 19:44:27 ABR: There is no direct link to what it means to fire an accessibility event. 19:44:48 JS: I always thought it meant the content in the section related to accessibility events. 19:44:58 CS: And I thought it included things like click handlers. 19:45:04 http://w3c.github.io/aria/core-aam/core-aam.html#mapping_events 19:45:17 ABR: The above link has the section in Core to what events are being mapped. 19:45:23 JS: There's a table there. 19:45:49 ABR: Those are about specific ARIA properties and how they are mapped. 19:46:04 ABR: And that shouldn't be a problem because they'll be in the tree. 19:46:56 ABR: 5.8.2 and 5.8.3 regarding visibility and text mutations, there might not be a one-to-one correspondence between DOM node and event to be triggered. 19:47:55 scribe: Rich 19:48:10 RRSAgent, make log public 19:48:24 Cynthia: The scenario is sort of a reverse bubbly scenario 19:48:50 Cynthia: some children are not in accessibility tree 19:49:29 scribe: Rich 19:50:24 joanie: some of the things I scribed that Joseph said was my understanding. However, if we are talking about the paragram example, we don’t care so much about the EM. We are interested in the coordinates at what was clicked. 19:50:36 joanie: what is they waypoint example? 19:51:01 joanie: if I don’t have to synthesize the input event and something pops up I will get an event and an appropriate role 19:51:40 amelia: we wan the assistive technology to know that the event happened on a meaningful object and it may need to bubble up in the DOM tree 19:52:14 amelia: we don’t want non-important elements to suddenly announced as you clicked on this span. But the reverse issue it is hard to determine what is important in these scenarios 19:52:28 cynthia: an image button in the middle of a paragraph is a great example' 19:53:01

….

19:53:07 cynthia: so it is just an image and there is a click handler elsewhere up the tree that does something on behalf of the image and it is all over the web. we need to find a way to have authors repair it 19:53:30 scribenick: joanie 19:53:47

…. click me   …

19:53:53 CS: Joseph, your example has a tabindex; remove that. And make it a span. 19:53:59

…. click me   …

19:53:59 JS: Like the above? 19:54:03 Group: Yes. 19:54:15 JS: So you click on the span and it bubbles up to the paragraph. 19:54:25 CS: Exactly, and this sort of thing is really common. 19:54:32 CS: Though it's more often on the body. 19:54:44 CS: And it's an authoring error. But it's very common. 19:55:06 CS: There's enough content out there in the world that it would be great if the user agent could repair this. 19:55:42 JS: But how, as this cannot be found via the DOM? 19:56:02 CS: There's certain magic one can do for DOM-based solutions. 19:56:17 CS: But for ATs based on accessibility APIs, there's no way to deal with this currently. 19:56:33

something something click me

19:56:38
click me!
19:56:55 ABR: Above is the opposite case. You still have a span called "click me!", but the paragraph is the important thing. 19:57:39 JD: On my platform, the span wouldn't be exposed. I would only see the paragraph. 19:58:13 CS: That could be handled I think. 19:58:23 CS: The tricky one is in my example (above) 19:58:30 CS: The click handler is looking for the ID of the span. 19:58:39 CS: It will get a click on the div, but not on the span. 19:58:52 CS: If we use the approach I'm thinking of. 19:59:09 ABR: No way sort of reading authors' minds can you handle all of these cases correctly. 19:59:21 ABR: Unless you parse the JavaScript, or.... 19:59:30 Group: That way madness lies. 19:59:39 CS: I think we can solve Amelia's scenario. 20:00:02 RS: I'm trying to figure out what they're doing when putting the click handler above (in the DOM tree) the object. 20:00:16 CS + JS: They're reducing code. 20:00:48 RS: Example, a click handler was put on the body tag so if you click anywhere outside a dialog box, it would close. 20:01:36 ABR: The event handler itself has the element associated with the event. 20:01:56 RS: This is Firefox telling you that there's an onclick handler on all the descendants. 20:02:10 RS: And then ATs were trying to infer why all of those elements had an onclick handler. 20:02:35 CS: We added invoke only if there was an explicit onclick handler; not all descendants. 20:02:46 CS: I'd be curious how Firefox is doing it. 20:03:53 RS: I think they were using the Action interface. 20:03:59 JD: If so, that might be a real problem. 20:04:07 JS: It's the end of the hour! 20:04:22 JS: I guess the discussion with events are ongoing since we didn't solve everything. 20:04:34 ABR: We didn't even get to aria-hidden. 20:04:53 RS: I'll send a note to Alex Surkov regarding the action issue. 20:05:00 Topic: No meeting next week. 20:05:11 Group: CSUN is next week, so we won't be meeting. 20:07:22 Zakim, part 20:07:22 leaving. As of this point the attendees have been Joseph_Scheuhammer, Bryan_Garaventa, Joanmarie_Diggs, AmeliaBR, Rich_Schwerdtfeger 20:07:22 Zakim has left #aapi 20:07:35 RRSAgent, make minutes 20:07:35 I have made the request to generate http://www.w3.org/2016/03/15-aapi-minutes.html joanie 20:08:46 scribe+ joanie 20:08:48 RRSAgent, make minutes 20:08:48 I have made the request to generate http://www.w3.org/2016/03/15-aapi-minutes.html joanie 20:10:21 scribe: joanie 20:10:25 RRSAgent, make minutes 20:10:25 I have made the request to generate http://www.w3.org/2016/03/15-aapi-minutes.html joanie 20:11:04 s/scribe+ joanie// 20:11:08 RRSAgent, make minutes 20:11:08 I have made the request to generate http://www.w3.org/2016/03/15-aapi-minutes.html joanie 20:11:34 RRSAgent, part 20:11:34 I see no action items