15:20:06 RRSAgent has joined #aria 15:20:10 logging to https://www.w3.org/2023/05/03-aria-irc 15:20:10 RRSAgent, make logs Public 15:20:11 please title this meeting ("meeting: ..."), jamesn 15:20:18 Meeting: ARIA WG F2F - Day 1 15:40:34 Q? 15:58:16 Matt_King has joined #aria 15:59:16 dmontalvo-mac has joined #aria 15:59:19 BenBeaudry has joined #aria 15:59:26 spectranaut_ has joined #aria 15:59:35 sarah_higley has joined #aria 15:59:37 Andrea has joined #aria 16:04:39 Adam_Page has joined #aria 16:12:45 scribe: jcraig 16:12:57 Topic: What do. you want to work on this year for ARIA 16:16:14 spectranaut_: continue to work on testing for Core AAM and HTML AAM 16:16:25 continuing to improve the contribution process 16:16:38 Andrea: 16:17:01 zakim, who is on the call? 16:17:01 Present: (no one) 16:17:10 s/Andrea: /Andrea: would love to help with contributing process/ 16:17:34 Adam_Page: open PRs, aria-actions, WPT 16:17:49 sarah_higley: taking Adam_Page's freetime 16:18:08 sarah_higley: aria-actions, interactive lists, etc 16:18:33 sarah's interactive lists: https://github.com/w3c/aria/issues/1884#issuecomment-1533166368 16:19:00 Matt_King: aria features: aria-actions, live regions and notifications, and finally dialog, in particular particularly non-modal or modeless dialogs 16:20:08 Matt_King: working on process to get both practices and WPT tests landed simultaneously with the spec change... 16:20:24 Matt_King also mentioned ARIA-AT tests 16:21:10 dmontalvo: 1.2 Rec process, ARIA-AT showing results now 16:21:54 cyns: interactive elements in general, in particular, AOM incubations, Open UI, overlap with ARIA, etc 16:22:27 cyns: Chrome implemementations, finding gaps between implementations, bringing more Googlers into the process of contributing 16:22:53 scotto has joined #aria 16:23:26 DG: Live Regions is the primary driver for my participation, joined because it's been overloaded for cases it wasn't designed for. Understanding users 16:24:02 DG: constantly hearing things like "the web doesn't do that".... Most web apps have very poor accessibility 16:24:26 DG: Would love to get the richness of desktop accessibility to the web 16:25:11 BenBeaudry: Live Regions, pushing in Edge and Chromium. New to this group, but not to Accessibility (in Chrome, etc) 16:25:28 BenBeaudry: want to push my boundaries to contribute to the design process... 16:25:59 BenBeaudry: all platforms... Mobile, Linux, etc. the web is the equalizer 16:26:25 BenBeaudry: need to rebuild expertise lost from people that have left recentlyt 16:26:43 scribe: BenBeaudry 16:27:14 cyns has joined #aria 16:27:54 jcraig: focused on testing. all the other wg builds these tests to make sure that it works in at least 2 implementations so that whenever there's a change to the specs we see the differences and where it breaks. we're just scratching the surface 16:28:06 jcraig: just the tip of the iceberg 16:28:50 jcraig: a related area I'm interested about is find a path forward for enabling all these tests and allow for relationships between nodes 16:29:09 jcraig: more to discuss in the meeting tomorrow 16:29:12 scribe: jcraig 16:29:30 jamesn: excited about live regions.... likely a replacement 16:30:15 improvements to tables and grids... even HTML tables... would love to be able to do everything we need to for complex web apps 16:30:21 accesible dataviz 16:30:32 s/accesible/accessible/ 16:31:05 scotto has joined #aria 16:31:41 scotto: aria-actions and interactive lists.... composite widgets. fixing the implementation and UI paths 16:32:13 getting clarity around modeless/non-modal dialogs.... Notification API, etc 16:32:35 Agree with jamesn that a notification API can coexist with Live Regions 16:33:14 Open UI scope: are there new ways to think about old patterns like list boxes... Are there better patterns we could promote instead? 16:34:28 Siri: interested in polishing patterns/widgets like tables/grids 16:34:43 not well supported in all screen readers 16:35:32 determining commonly used widgets and patterns, to tackle the interaction problems 16:36:49 Rashmi: mostly how ARIA interacts with screen readers. Correcting the edge case problems. 16:37:15 siri has joined #aria 16:37:19 spectranaut_: summarizing 16:38:15 focusing on the list that aren't slotted for discussion in this F2F 16:38:24 ARIA-AT tests 16:38:30 validation tests 16:39:36 Q+ to ask if we can put links to the various tests suites into the minutes? 16:39:38 exposure of more surface than currently testable 16:39:54 how to bring the richness of native to the web 16:40:15 polish of old patterns, and anti-patterns... Open UI is working on this to some degree 16:40:40 specific examples: interactive lists, tables and grids, dataviz, etc. 16:40:56 normalizing platform differences 16:41:18 q+ 16:41:18 how to facilitate and mentor the next generation and make sure knowledge isn't lost 16:41:47 documentation: https://github.com/w3c/aria/blob/main/documentation/tests.md 16:42:03 and https://github.com/w3c/aria/blob/main/documentation/wpt.md 16:42:22 ack cyns 16:42:22 cyns, you wanted to ask if we can put links to the various tests suites into the minutes? 16:42:29 cyns: old Edge tests not yet landed in WPT 16:42:54 ack me 16:43:25 jamesn: in terms of getting mentorship and new blood, I'm talking to A11yCamp Bay on Friday 16:44:00 open to suggestions for exciting topics to share 16:44:50 DG: re: live regions, devs will *think* they have written Live Regions well... How do they know? Are these in those tests? 16:44:52 q+ 16:44:58 q+ 16:45:13 Matt_King: ARIA-AT has manual tests for all manner of Live Region tests 16:45:28 Much is left up to implementations... 16:45:46 APG only has 3 or 4 Live Region tests? 16:46:20 Scott and Sarah also have live regions tests 16:46:28 q? 16:47:07 DG: devs may be hesitant to throw excess notifications if they could see the excess of text thrown at the user 16:47:35 Matt_King: back-burner project... simplified accessibility tree and events would be a good visualization 16:47:42 Old Edge WPT UIA Implementation tests for HTML https://github.com/MicrosoftEdge/a11y 16:47:55 q? 16:48:01 IIRC there were ARIA tests at one point, but they may be lost the sands 16:48:06 q+ 16:48:15 Matt_King: including live region "flashes" 16:48:59 jamesn: start with a UI for the tree 16:49:17 q? 16:49:23 ack jcraig 16:49:52 q+ 16:51:03 Demo of Chrome Dev Tools A11y Tree viewer https://io.google/2022/program/84bda4d4-bdd9-418f-aa85-f6adbc9f50d8/ 16:53:03 ack me 16:53:26 jcraig: @@@ 16:54:02 jamesn: standards and wcag can be to blame for testers thinking verbosity needs to be high 16:54:54 re: live regions: don't overcomplicate the notification API with a requirement for Live region completeness 16:55:36 ack me 16:55:40 cyns: screen reader visualizer experience, could recruit others to build it 16:56:13 sarah_higley: visualizer could show when speech jobs get trampled with live regions 16:56:24 and other interaction problems 16:56:42 .... edge cases re: live region queing 16:56:51 s/queing/queueing/ 16:56:59 ack me 16:57:13 q? 16:57:19 ack cyns 16:57:36 DougGeoffray has joined #aria 16:57:40 Adam_Page has joined #aria 16:58:05 present+ 16:58:14 present+ 16:58:26 spectranaut_: will make a visualizer dev tools issue in the tracker 16:58:33 present+ 17:02:23 spectranaut_: jamesn what about fixing tables 17:03:28 jamesn: wanted for a long time, particularly large tables offloaded to the servers, sectioning scrolls out of view, editable cells, virtualization… 17:04:10 big +1 to how to exposed 'virtualized' content in a better way 17:04:11 trying to keep focus in the right part of the table while the virtualized tables are being re-rendered 17:04:12 q+ 17:04:59 ack sarah_higley 17:05:27 ack me 17:05:38 sarah_higley: virtualization of tables should consider lists and other container types 17:06:12 q+ 17:07:33 Aaron: including more things in HTML, like keyboard interaction by default rather than accessibility-specific interfaces, so devs don't have to specialize 17:07:51 Virtualization proposal https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/main/Accessibility/VirtualContent/explainer.md 17:08:33 BenBeaudry: Matt_King was talking about ARIA virtual content.... I implemented support in Chromium. needed SR support 17:08:35 ack BenBeaudry 17:08:58 DG: concerns re: performance 17:09:03 q+ 17:09:08 q- 17:09:09 q+ 17:09:23 Matt_King: read through this before the meeting time tomorrow 17:10:01 q? 17:10:13 cyns: accessibleObject (abandoned API ) behind a flag in Chrome 17:10:25 scribe: spectranaut_ 17:11:31 q+ 17:11:45 zakim, close the queue 17:11:45 ok, jamesn, the speaker queue is closed 17:12:00 jcraig: echo what doug mentioned, we talk about virtual content, performance was a concern. the other concern -- the reason we couldn't implement -- it violated the new html design principles -- strict guidance to never let the web know you are using assistive technology. actually that is impossible to prevent, too many heuristic ways to know this. this has killed many new ideas. 17:12:39 q? 17:12:41 ack jcraig 17:12:43 ack scotto 17:13:03 s/this has killed many new ideas./this has made it difficult to explore many new ideas./ 17:13:19 scotto: consider attribute parity with HTML 17:13:27 q+ 17:13:59 HTML has a partial solution to virtualization with the lazy attributes.... What if we leveraged existing or created new HTML features 17:14:19 ack cyns 17:15:28 Matt_King: many problems we are discussing are so magnificent in size, if we can focus all our efforts on them one at a time, we could solve them in sequence 17:16:33 jamesn: BREAK until 10:30 AM Pacific (14m) 17:33:51 dmontalvo-mac has joined #aria 17:34:42 s/jcraig: @@@/jcraig: re: DG's comment that web devs don't test live regions, imagine how foolish a web dev would be for writing CSS but never reloading the page to view it. That's how many web devs test accessibility. the flip side though is that you can't overload a new web dev with too much SR verbosity, or it will backfire and they'll react with fear rather than empathy./ 17:35:20 zakim, open the queue 17:35:20 ok, jamesn, the speaker queue is open 17:36:17 TOPIC: Introduction/Overview of Automated Testing 17:36:27 https://github.com/w3c/aria/issues/1879 17:37:04 scribe: sarah_higley 17:38:15 Adam_Page has joined #aria 17:42:23 jcraig: I work on a11y standards at Apple in San Jose, I used this to explain to my team what I'd been working on for a couple months 17:42:40 jcraig: I updated it to share more details on the history of WPT and where I'd like this to go, and at the end it trails into demos 17:42:48 jcraig: ask questions, feel free to interrupt 17:43:39 andrea_cardona has joined #aria 17:43:51 jcraig: cross-browser a11y automation is what I'll call this effort. I wanted to explain what we're talking about, because automation and accessibility automation means different things to different people 17:44:14 jcraig: tech stack: we have the web author and end user. The web author is most of you, and most of us are end users as well. Some of us are end users with ATs too 17:44:44 jcraig: the web author writes some framework that gets to the web platform as HTML CSS and JS. This is interpreted by the rendering engine. For apple this is Safari, for others this is Chromium 17:45:08 jcraig: Inside that browser stack is the implementation, we refer to this as WebCore. This handles events like mouse clicks and key presses, output like rendering pixels 17:45:19 jcraig: it handles a bunch of background API like XHR requests, etc. 17:45:46 jcraig: when you get into a11y, the stack is a bit different. Inside the rendering engine is another portion of it that runs on demand, and some of it overlaps. In webkit, this is WebCore/Accessibility. In Chromium it used to be similar 17:46:22 jcraig: this takes all of what the browser has rendered on the screen, and turns it into its own internal model of an a11y tree with events and things, and exposes it to the platform. In Mac this is AX API, on Windows this is IA2, UIA, etc. 17:46:44 jcraig: switch controls, screen readers, ATs interface with that and present it to the user. 17:47:02 Matt_King: on these slides do you have graphical representations? 17:47:06 jcraig: yes, want more detail? 17:47:19 Matt_King: no, I've had to explain the same stuff to other non-accessibility people, wondering if the slides are shareable 17:47:27 jcraig: I can share a PDF version of this 17:47:36 jcraig: let me double check 17:47:55 q+ 17:48:04 Matt_King: I imagine there's other people who also need to explain this 17:48:05 (general agreement) 17:48:28 jcraig: there are a lot of pieces to this stack on screen. Feels like 20 years ago no one was doing automated testing with the web platform, but more and more pieces have been possible with automation 17:48:34 jcraig: I"ll explain the web automation stack next 17:48:52 jcraig: started with platform-specific automation. This is why UIA is named UI Automation. Apple has its own automation framework 17:49:15 jcraig: now a native app dev would use something like XCUI tests for XCode tests, these leverage the platform a11y api 17:49:48 jcraig: there are general component versions of this. Right now a third party dev can't automate someone else's app, so you can't automate VoiceOver except for the APpleScript bridge, but we have our own solution for automating our own products 17:49:52 q? 17:50:03 jcraig: likewise, most people probably thought of these client automation tools like axe-core. 17:50:13 spectranaut_: we call these the validator tests 17:50:29 jcraig: does your DOM structure comply with WCAG, these sort of things 17:50:42 jcraig: WebDriver, Selenium started off as this sort of thing as well before they moved into the browser 17:50:52 Ack dmontalvo-mac 17:51:25 jcraig: for Windows there's another little arrow I'm missing that comes from this AT over here into the WebCore implementation 17:51:32 jcraig: it doesn't work that way on mac, but it does on Windows 17:51:46 Matt_King: JAWS is using IA2 and UIA and MSAA, they're not processing the DOM 17:51:50 jcraig: let's not divert into that 17:52:01 jcraig: those are the two platform-specific, client automation 17:52:35 jcraig: there's also engine internal automation. In webkit, most are in this section called Layout Tests, There are 82000 tests, in Chromium there are probably (missed number) 17:52:57 jcraig: all these engines are duplicating the work. Webkit, Chromium, Gecko, all have these thousands of tests 17:53:25 jcraig: sounds like a lot, until you realize how web platform tests has 1.8mil tests 17:53:44 jcraig: Up until now the only a11y things they were doing crash tests. Val added these IDL tests for ARIA 17:54:08 jcraig: someone wrote those in the past year or two. Not testing the accessibility internals, only testing that this works 17:54:22 jcraig: look up Acid3 tests, with a weird css smiley face 17:54:39 jcraig: that wasn't specific to a11y. But all the automation tests are in these LayoutTests 17:54:53 jcraig: the cross-browser automation project is a collab between w3c and a whole lot of other entitites 17:55:11 jcraig: 1.8 million tests, with a whole bunch of features. Shadow DOM, css, etc. Not a lot about a11y 17:55:24 jcraig: been around for about 10 years, only 3 years ago they started this project called Interop 17:55:45 “WPT Interop 2023 is a cross-browser effort to improve the interoperability of the web — to reach a state where each [Web API] works exactly the same in every browser.” 17:56:12 https://wpt.fyi/interop-2023 17:56:17 Matt_King: what does works exactly the same mean? 17:56:18 jcraig: heh 17:56:26 jcraig: I'll come back to that in a demo 17:56:40 jcraig: this (graph) was as of this week or last week. Webkit and Edge keep leapfrogging eachother 17:56:56 jcraig: there are lines for each of the different implementations up until May, now 17:57:04 jcraig: Chrome, firefox, safari, and interop 17:57:21 jcraig: axes are months in 2023, Y is percentage towards 100 17:57:32 jcraig: this is a selection of features that devs agreed on we would work towards interop this year 17:57:43 jcraig: the interop line is lower than the browsers, at 73% passing interop 17:58:09 jcraig: the features include inert, flexbox, etc. 73% of those are passing in all implementations 17:58:23 jcraig: the browsers are in the high 90s, interop in high 80s at end of last year 17:58:34 jcraig: we all compete to be the best and work together along the way 17:58:53 jcraig: someone said let's get a standardized a11y tree, and everyone said that's not gonna happen but love the enthusiasm 17:58:58 jcraig: so working together to get more a11y testing 17:59:41 jcraig: went to browser testing and tools group to say we need more api, and browser testing & tools said make it a DOM extension. I said no, we got computed role and (??) out of that 18:00:22 jcraig: based on that, I started shopping it around, Alice was at google and said it'll be really tedious to write webdriver tests for everything in WPT and others had the same concerns. So I wrote a testdriver wrapper around webdriver that simplifies the test writing 18:00:30 jcraig: it still uses webdriver behind the scenes, but makes it a lot easier to write tests 18:00:39 jcraig: literally one line of js 18:01:06 jcraig: I've tried to write tests to make sure they all work, I haven't written comprehensive tests because I want all of you to write them with me. But there are now a few hundred more tests in WPT in the last couple months 18:01:21 jcraig: (listing browser passing numbers) 18:01:31 jcraig: all hitting around 90% of these tests 18:01:53 jcraig: firefox is way down below, but that's because they're working on adding support for these new webdriver props. Jamie Teh is making great progress 18:02:04 Cite: https://wpt.fyi/results/?label=master&label=experimental&aligned&q=path:/accessibility or path:/accname or path:/html-aam or path:/wai-aria or path:/html/dom/aria-element-reflection.html 18:02:45 https://wpt.fyi/results/?label=master&label=experimental&aligned&q=path%3A%2Faccessibility%20or%20path%3A%2Faccname%20or%20path%3A%2Fhtml-aam%20or%20path%3A%2Fwai-aria%20or%20path%3A%2Fhtml%2Fdom%2Faria-element-reflection.html 18:03:22 jcraig: this is a subview in these tests inside the WAI ARIA tests 18:03:44 jcraig: all of them are passing basic.html, getting some differences in roles.html, safari has 2 bugs, chrome and edge have some bugs with synonym roles 18:04:08 jcraig: filed these in browser trackers and re-associated them with this triage view in the WPT dashboard. It's a cool view, you can see all a11y tests and see where browser diffs lie 18:04:30 jcraig: benefits are that literally thousands of a11y tests are now unblocked. Specifically computedRole and ComputedLabel, but there are thousands with those 18:04:48 jcraig: bugs have been discovered and resolved in webkit, chromium, and gecko. Also found spec ambiguities 18:05:21 jcraig: one of the reasons I'm so excited about this is there are new incentives for writing these tests I didn't see before. Browser engineers always had incentives to write these tests, but before it was easier to write interal tests than WPT tests 18:05:32 jcraig: but spec authors and w3c contribs had incentives to write it 18:06:27 jcraig: now the change is web devs who find this weird a11y edge case bug and need to file issues in browsers, and it's really complicated to find a process to write tests. So there's a lot of incentive to write one tests and get it running, submit to WPT, spawn all these bugs, and once it's fixed they shouldn't regress 18:06:35 jcraig: so it's a lot of incentive for the web devs to take over this 18:07:17 jcraig: next steps are that there are more tests currently in review, hundreds more coming. Nolan has a manual test last year that's updated to an automated test this year for shadow dom slots 18:07:45 jcraig: I'm in the moment recruiting other stakeholders to write more tests. Want to extend beyond role and label, Scott mentioned role and attr parity, that could be through ARIA or this other AOM issue 18:07:49 https://github.com/WICG/aom/issues/197 18:08:05 jcraig: the AOM issue is computed accessible node 18:08:14 Q? 18:08:15 q? 18:08:52 jcraig: potentially this could be an accessibility focus area for 2024. This work doesn't contribute to that final score yet, can't test implementations against eachother since there are known diffs 18:09:18 jcraig: let's go into demos 18:09:40 jcraig: WPT github dashboard 18:10:07 jcraig: URL is wpt.fyi, these are all the 1.8 mil tests. You'd be tempted to go into accessibility, but most of them are not 18:10:23 Adam_Page has joined #aria 18:10:37 jcraig: it's considered an antipattern to put things in there. If tehre's a spec, it should be in a top-level spec directory. There's a top-level accname and html-aam directory. At the bottom there's a wai-aria directory 18:10:53 jcraig: there will be more in here for svg-aria and svg-aam, but those are draft PRs now 18:11:01 Matt_King: what are those in the a11y folder, e.g. crash tests 18:11:12 jcraig: those are specific crashes that occured during implementation 18:11:21 spectranaut_: Aaron wrote them! 18:11:48 jcraig: thanks for writing these, I went in and filed a webkit bug because there were more crashes in firefox and safari. There isn't a spec associated with crashing, so those are in the accessibility dir 18:11:58 jcraig: I have this search query to get all teh current a11y tests, I pasted in earlier 18:12:26 jcraig: this is not a permanent link because I don't know how to get regex working in the query. This is just the paths I knew about at the time. Includes crash tests, accname, html-aam 18:12:30 jcraig: and the new aria tests too 18:12:46 jcraig: if you dig into accname or aria you see a manual dir. I put them there because they're not being maintained 18:12:52 spectranaut_: they are being maintained by me 18:12:55 jcraig: you run them? 18:13:08 spectranaut_: yeah, we have hacked-together tools to run them. It's a long story for another day 18:13:15 jcraig: OK, valerie is running the one implementation 18:13:21 spectranaut_: only html-aam and core-aam 18:13:33 jcraig: that's the thing that runs the client server and etc etc? 18:13:48 spectranaut_: no actually, I have to look at the manual tests in ARIA, nvm. I was thinking about html-aam and core-aam 18:13:57 jcraig: the stack to set it up is really complicated 18:14:04 spectranaut_: the html-aam and core-aam are maintained 18:14:20 jcraig: anyway they're manual and not run by the dashboard implementation 18:14:50 jcraig: so some of them could be converted, and when converted I'd expect them to be deleted in the manual, and created as a new test outside of the manual tests. Currently not adding to any of the numbers 18:15:10 tzviya has joined #aria 18:15:15 jcraig: in ARIA, good news. Besides the firefox stuff jamie is working on , we have high levels of pass rates across all implementations. Couple bugs I mentioned, we can go into those 18:15:50 jcraig: if you click on roles.html you can see specific results for each, you can see passing for alert, alertdialog, etc. All missing results in FF, one failure in Safari -- no two. Wanted you to see there's a switch abve the table called show details 18:15:58 jcraig: increased cursor size makes it easier to see 18:16:09 jcraig: showing us all his computer display settings 18:16:24 jcraig: cursor doesn't show up on the shared screen! New bug to file 18:16:40 jcraig: in details, see associated bugs 18:17:06 jcraig: anyone who are listed as reviewers have access to triage mode, and you can click on any failing cell and click triage and add bug. Be careful adding the bug because you can't take it out afterwards 18:17:12 jcraig: don't do it unless you're sure that's the right bug 18:17:18 jcraig: in html-aam tests -- 18:17:52 jcraig: we have yellow and red in html-aam, there's quite a bit more here with associated bugs. So table roles, you can see there are one, the bug for rowgroup 18:18:00 jcraig: so this is how the dashboard works in WPT 18:18:04 Q? 18:18:19 jcraig: next is interop a11y investigation. This is a github project, check the issues list. Issue 3 is the scoring criteria 18:18:45 jcraig: we meet once a month, and decided how to measure the success rate, decide what to tests, how to test it. Have it running in chrome and webkit. Gecko isn't done yet 18:19:00 jcraig: remaining portions are all based on writing these tests and getting them running. A handful are completed 18:19:11 jcraig: all these other tests in accname and role are things you all can take 18:19:25 jcraig: tried to separate them out so it's easy for someone to take them on as an issue and PR 18:19:43 jcraig: some of the other things include things like computed parent and children, that's an AOM issue 18:20:18 jcraig: note to anyone here for anyone who works for a big org. Some grey areas with WPT and IPR. Whoever owns github/web-platform-tests isn't assocated with that, so there isn't an IPR policy 18:20:50 jcraig: so if there's an API discussion that should happen in a w3c group, or html. Just tests are OK, but discussion should not happen in this repo because it's ambiguous what that would mean for your company's IPR 18:21:28 jcraig: (listing issues in accname) 18:21:42 jcraig: there are running tests for these, but they're usually just a single test 18:21:53 jcraig: interop 2023 dashboard 18:22:19 jcraig: I mentioned the diff between focus areas and implementation areas. 18:22:32 jcraig: inert is at 100%, wooooooooo 18:22:46 jcraig: as of the most recent Safari tech preview, we're at 100% inert tests 18:22:53 jamesn: does that mean we're not testing enough? 18:22:55 jcraig: probably 18:23:11 jcraig: in stable inert is still down at 94%, because of safari. But at experimental has 100% 18:23:27 jcraig: in a11y testing you can see the investigation is at 60% and that's based on that earlier criteria 18:23:39 jcraig: chrome jumped ahead, (reading %'s of each browser in dashboard) 18:23:50 jcraig: I'm going to run some tests now 18:24:01 jcraig: and then show some tests, because I think that's powerful as well 18:25:02 jcraig: (running accname tests in fully white terminal with black text on screen) 18:26:59 (now jcraig has a black terminal with green text) 18:27:08 spectranaut_: old hacker imagery 18:27:24 jcraig: back on topic 18:27:50 jcraig: so there's going to be a bunch of spew on screen, most of it is normal 18:28:07 jcraig: it's popping up browser windows, running tests in the accname dir, it's completed now 18:28:32 jcraig: the important part here is this bock of text saying ran X checks, subtests, tests. Expected results 31, unexpected results 1 18:28:40 jcraig: that matches the dashboard, so that's accurate 18:29:13 jcraig: the last line of text is the run script has some args. accname is the path, and before that is safari. Can replace safari with chrome, and now it runs for chrome 18:29:45 jcraig: this is running locally on my machine, on my copy of chrome and my copy of safari tech preview 18:29:57 Matt_King: so you can only test things on your machine? not the windows version? 18:30:05 jcraig: this should be the same because it's testing browser internals 18:30:17 jcraig: I'm just going to run one of these, the one that failed 18:30:25 jcraig: which test failed is in the logout 18:30:29 jcraig: running that with the test path 18:30:45 jcraig: the difference will be that it pauses that test in the window with it open 18:30:52 jcraig: running one a time pauses with the window open 18:31:31 jcraig: you get a popup when you try to interact with a window controlled by automation 18:32:33 (jcraig being evil and making people guess what to click in the popup) 18:33:20 jcraig: you all should read the documentation tonight 18:33:47 jcraig: click stop session in the dialog 18:34:11 jcraig: (reading message in the test details) 18:35:38 jcraig: also going to show you -- that was running locally -- when you instantiate a PR you can see the results online in a different interface 18:36:03 jcraig: this is one of the issues where I noticed there were ambiguities in the way SVG defined these roles, differences between chrome and webkit 18:36:30 jcraig: in order to inform that discussion I wrote a PR with a new test. (showing the PR diff) 18:37:06 jcraig: I put in what webkit is returning in data-expectedrole. The script is AriaUtils.verifyRoleBySelector 18:37:22 jcraig: it compares the computed role (not the role) against what I defined as the expected role 18:37:48 jcraig: to see the results, go to conversation review, in the checks usually the last three are the experimental results for chrome, ff, and safari. 18:38:09 jcraig: I click on the results from safari, and you can see 3/3 passed, there's a visual comparison of the results 18:38:17 jcraig: before the tests there were no results, after the tests all three pass 18:38:43 jcraig: going back to chrome's view, 0/3 passed in the visual comparison 18:38:50 Adam_Page has joined #aria 18:39:01 jcraig: if you click show details you get the entire fail message, including markup and expectation vs. result 18:39:10 jcraig: so this is an area where the spec is ambiguous 18:39:41 jcraig: so my call to action: if you are interested in writing or running tests tomorrow, please read the documentation tonight and get it running tonight 18:40:05 jcraig: I can help if you have a mac. If you have a windows machine or chromebook or linux I'm not the one to ask 18:40:21 jcraig: try to get your machine configured tonight, I"ll paste in docs links 18:40:31 https://github.com/w3c/aria/blob/main/documentation/wpt.md 18:40:59 jcraig: this is what worked for me on my mac, the second link has more info for other systems 18:41:17 jcraig: (going through the info in the doc) 18:42:12 jcraig: there's a lot of documentation not in the wiki, but in the source itself. 18:42:22 jcraig: in accessibility, in addition to crash tests there's a readme 18:42:31 jcraig: it says not to use this directory 18:43:11 jcraig: in accname, I added a name dir for the name computation. At some point we'll have computed description and can add a dir for that 18:43:21 jcraig: lots of files for comp_tooltip, etc 18:43:29 jcraig: embedded control was failing, let's look 18:43:51 jcraig: in the file there are a lot of TODOs, that's a good action 18:43:57 jcraig: you can take this on and fill it out 18:44:10 jcraig: we can get you added to that project 18:44:47 jcraig: I could do it myself, but I want you all to do the work 18:45:03 jcraig: there's a readme in name that breaks down how the files are named 18:45:26 jcraig: there are some noops, but there are files for others, etc. etc. 18:45:36 jcraig: this is my readme of how I broke up accname into specific test files 18:46:13 jcraig: in wai-aria I want to point you at a few things. The role dir, which has a basic test. you can ignore the promise_test block. That's the original way to do it, but most tests don't use that, they use one of the convenience methods in AriaUtils 18:46:22 jcraig: I left the basic tests as a simple one that doesn't rely on that 18:46:44 jcraig: there's a readme in wai-aria, it's markdown, (reading the readme) 18:47:24 jcraig: you all should review the aria-utils.js if you're familiar with javascript in scripts/ 18:47:53 jcraig: (talking through script) 18:48:13 jcraig: should keep a complete list of roles in this file 18:51:12 Adam_Page has joined #aria 18:51:16 dmontalvo-mac has joined #aria 20:04:57 Adam_Page has joined #aria 20:05:21 dmontalvo-mac has joined #aria 20:09:34 sarah_higley has joined #aria 20:10:48 cyns has joined #aria 20:11:25 cyns has changed the topic to: aria live regions 20:12:37 DG: Community feedback survey from Microsoft - voice of screen reader users, voice of deverlopers, voice of screen reader vendors 20:12:46 andrea_cardona has joined #aria 20:13:07 DG: Screen reader users were all Windows, would like input from other platforms 20:13:24 DG: also interviewed screen-reader vendors for deeper feedbak 20:13:38 DG: User feedback 20:13:47 DG: 1. Interruptions 20:14:24 DG: NVDA doesn't even represent Live Regions to Braille users 20:14:32 BenBeaudry has joined #aria 20:14:53 present+ 20:15:46 Rashmi__ has joined #aria 20:16:02 DougGeoffray has joined #aria 20:16:07 Screen reader users are frustrated with irrelevant interruptions and want more control NVDA is filtering live regions from braille because of the overuse/misuse causing correctly used CoA to be missed Live regions are inconsistently implemented across browsers, screen readers, and web developers (have poor developer ergonomics) DOM-based notifications are buggy in a few ways: Inserting visually hidden live region text near the relevan[CUT] 20:17:24 (con't): Inserting visually hidden live region text near the relevant control means that text is separately discoverable by screen reader users with their virtual cursor. ​ Site-wide live region systems often manage and insert live regions in a specific area of the DOM (often at the end), which can fail when users open a modal dialog. ​ Difficult for screen readers to know how to expose the DOM information ​ 20:17:34 Live Regions lack richness (no context, interpretation of how to build the string, and primitive prioritization) for screen readers. ​ Developers are asking for a better answer than live regions for a reliable and consistent accessibility experience for users​ Screen reader developers want better guidance on what is expected behavior 20:19:15 Notification API: https://wicg.github.io/aom/notification-api.html 20:19:23 google doc: https://docs.google.com/document/d/17kKNoCIoMSFMFicz0wSQR-PHWHfHGYfz1WdtHMYyrhE/edit?usp=sharing 20:21:02 Adam_Page has joined #aria 20:21:30 Q+ to ask if there are differences in experience with roles that are live (e.g alert, status) vs adding aria-live attribute 20:23:04 Matt_King: ARIA-AT says that it SR shouldn't say "alert". role=alert is the only way to get live region behavior across all browser/at 20:23:51 jcraig: role=timer is supposed to be aria-live=none, not announce unless focused, but not always implemented that way 20:24:23 DG: All screen-readers behave differently 20:24:48 DG: A programatic way to filter by notification type 20:25:10 https://github.com/WICG/aom/issues 20:25:18 https://github.com/WICG/aom/issues/187 20:26:09 q? 20:26:18 DG: Goals of API 20:26:23 q- 20:26:56 Improve end user experience:​ Consistent and predictable experience​ More control over what and how to consume notifications​ Filtering / Repeat / Jump to / Less disruptive​ Empower screen readers developers:​ Unambiguous string​ Context​ Grouping of notifications​ Improved Prioritization / interrupting guidance​ ​ Empower web/browser developers:​ Offer an alternative to “offscreen live region” scena[CUT] 20:27:02 DG: Improve user experience, empower screen reader developers, empower web/browser developers 20:27:11 has easy-to-use developer ergonomics​ solves the consistency and predictability problems of live regions​ Provide a design framework for improvements to live regions as a “declarative version” of the notification API. 20:29:34 q? 20:29:55 Notification API - Summary: New API ariaNotify()​ Allows authors to directly tell screen reader what to read​ No return value, no inference of assistive technology​ Independent arrays/queues​ Labels for screen reader context​ Processing recommendations / restrictions 20:30:48 q+ to ask how this API solves some of the other use case problems you mentioned, such as how/where to act on the notification 20:31:05 sarah_higley has joined #aria 20:31:07 Siri has joined #aria 20:31:24 Notifications are placed into a document or individual element arrays (Queues)​ ​The document, and each element in the DOM have separate pending notification arrays​ No guarantee which array is processed first​ Only guarantee is items within an array are processed in the given order​ ​ Screen readers are not permitted to re-order the notifications within a p 20:31:32 q+ to say, ah, the issue doesn't specify that this is on any element, not just document. 20:31:33 (con't) Screen readers are not permitted to re-order the notifications within a pending notification array–they may only pull from the service end of such arrays 20:33:25 Matt_King: I don't think of things in a document as temporal. Is this a queue? 20:33:44 ack jcraig 20:33:44 jcraig, you wanted to ask how this API solves some of the other use case problems you mentioned, such as how/where to act on the notification and to say, ah, the issue doesn't 20:33:47 ... specify that this is on any element, not just document. 20:36:30 Matt_king: sent element bold on and then element bold off quickly (e.g. ctrl+b twice) - where does the first one go? 20:37:28 q+ 20:37:41 craig: There are things in the visual UI like a menu flash. Notification could come from the state change of the bold button. 20:38:11 jcraig: this javascript API would pass it's results to the relevant platform accessibility API. 20:38:55 DG: UIA, for example, has a rich notification API with more options that assertive|polite 20:39:26 https://developer.apple.com/documentation/uikit/uiaccessibilityannouncementnotification?language=objc 20:40:20 q- 20:40:55 https://developer.apple.com/documentation/appkit/nsaccessibilityannouncementrequestednotification?language=objc 20:41:44 Matt_King are these labels standardized tokens or a freeform string that will have to be standardized elsewhere 20:42:20 DG: token lists always fall short. screen readers already script for individual apps 20:43:03 jcraig: I'm not comfortable with screen readers talking directly to web pages 20:43:21 q+ aaron 20:43:22 matt_king: explore something similar to role and role-description 20:43:36 q+ 20:44:17 Notification API - Labels​: Each notification can have a label (unique or not)​ Labels provide context to the screen reader allowing users flexibility on how the notification is handled (filter / speech vs. braille / sound effects, etc.) 20:44:21 jamie: asking jcraig, is that really that different than voice-over custom labels? 20:45:06 jcraig: voice-over custom labels do filtering, not direct web page interaction 20:45:45 q+ 20:45:51 ack aar 20:45:59 aaron: worried about proliferation. 15 chat programs shouldn't have 15 different behaviors for "user joins a chat". but now I'm ok with it, maybe standardize later 20:46:22 aaron: maybe call it somehthing other than label because it's not read to user 20:46:26 q? 20:46:45 matt_king: so users can't block based on what they hear? 20:46:58 ack me 20:47:02 DG: block types of notification 20:47:50 jamesn: doesn't w3c have a place to put a list of conventions? Could use that for categories of notifications? 20:48:19 q+ 20:48:37 q+ 20:49:51 jcraig: notification calls are identified as task, progress, finished - but would be connected to a string like "file one downloaded" 20:50:32 jcraig: we should separate user-presented notification strings from system notifications (e.g. VoiceOver screen-changed notification is not exposed to user) 20:51:08 q? 20:51:19 q+ 20:51:26 jcraig: context we've addressed in other ways with things like braille-description - should tweaks for different AT modalities be part of this 20:52:24 jcraig: started with lowest common denominator API, but now it seems like other types of notification use cases are piled on 20:52:34 DG: not sure why having more api is better? 20:53:26 DG: want to keep it simple and clear 20:53:55 jcraig: it seems less simple to have a bunch of different behaviors and a registry that's a parameter this seemingly simple api 20:53:56 q? 20:54:00 ack jcraig 20:54:00 ack m 20:54:04 ack cyns 20:54:12 q+ Matt_King 20:54:31 scribe: spectranaut_ 20:55:37 cyns: API question: there is an interest tension, you can have an API that is seemingly simple, but if it has a huge list of "ids" 20:55:58 DougGeoffray: So you want an api that sends a string, and api that has specialized... 20:56:01 ack me 20:56:07 cyns: I think I'm trying to say this is not a simple API 20:56:21 jcraig: a simple one that just sends a string seems good for basic use case 20:56:57 ack Adam_Page 20:56:57 jcraig: but if there's a different type of notification, like a system notification like a screen change, or a type of notification that users might want to suppress 20:57:56 adam_page: regarding potential proliferation, novice user might want to filter wihtout having to understand nuances of different types of notifications. Can we make isimpler for users to filter at a higher level 20:57:57 q? 20:58:10 q+ 20:58:13 adam: user intent is different than interupt 20:58:50 DG: with screen-reader background, might have profiles for different apps and mapped into verbosity 20:59:30 cyns: built into browser so that less popular apps that there aren't scripts for seems better 20:59:33 q+ 20:59:34 ack Matt_King 20:59:58 matt_king: need to workshop these things individually with more time than we have here 21:00:59 matt_king: jcraig was talking about system notifications. I thought this wasn't for system events, just for things the web author thinks might need to be announced. Is it more general? How is it different than state chagne events and other stuff in core-aam? 21:01:22 DG: jcraig, are screen-change events coming from the web page of the system? 21:02:16 jcraig: when you change views, there's a UI Accessibility change event notification. Voiceover plays an earcon 21:02:42 jcraig: events in this doc are task start, task end, bold start, bold end (menu state change) 21:03:28 q+ 21:04:20 matt_king: from web author point of view looking at this api, are these things that are going to get spoken, or are they about other kinds of notifications 21:04:52 jcraig: api passes strings 21:05:23 ack Jamie 21:05:37 matt_king: lets think about whether this should have different methods, and not complicate this for web authros 21:06:09 jamie: baseline for API is that we pass a string that should be announced. It can have parameters that user or AT vendor can choose to do something with it 21:07:31 cyns_ has joined #aria 21:07:31 q- 21:08:13 rrsagent, make minutes 21:08:14 I have made the request to generate https://www.w3.org/2023/05/03-aria-minutes.html jamesn 21:08:24 jamie: this api is about announcing messages. first parameter should never be empty. 21:09:12 s/set the topic: aria live regions/topic: aria live regions/ 21:09:16 rrsagent, make minutes 21:09:18 I have made the request to generate https://www.w3.org/2023/05/03-aria-minutes.html jamesn 21:10:00 present+ 21:10:01 jcraig: use ID to group announcements from one element, only play the last one, but not suppress all notifications 21:10:03 q? 21:10:40 matt_king: if notification is on container, messages will be on the same element 21:12:43 s/(talking through script)/(talking through script) should keep complete list of roles in this file/ 21:13:15 q? 21:13:20 ack cyns_ 21:14:27 q+ 21:14:36 ack me 21:14:36 ack cyns 21:15:39 matt_king: screen-reader should manage this 21:15:56 i/should keep a complete list of roles in this file/scribe:cyns/ 21:16:10 i/should keep a complete list of roles in this file/topic: live regions/ 21:16:19 rrsagent, make minutes 21:16:20 I have made the request to generate https://www.w3.org/2023/05/03-aria-minutes.html jamesn 21:16:26 matt_king: only announce when it has focus 21:16:56 q? 21:17:12 q+ to say remember this should not be specific to SRs 21:17:42 ack me 21:18:35 i/cyns: I think I'm trying to say this is not a simple API/scribe: cyns/ 21:18:40 rrsagent, make minutes 21:18:41 I have made the request to generate https://www.w3.org/2023/05/03-aria-minutes.html jamesn 21:18:56 sarah_higley: I think we're getting a lot into how screen readers could use these IDs. Somehting with a lot of notifications like a chat app needs to be managed through the app. SR management should be more an out 21:19:36 ack me 21:20:07 sarah_higley: value here is for authors to be able to have an easy way to clear a que of certain types of messages. Not necessarily a way for end users to manage notifications 21:20:15 q+ 21:20:37 ack jcraig 21:20:38 jcraig, you wanted to say remember this should not be specific to SRs 21:21:39 jcraig: not only for screen-readers - useful for other kinds of AT. Zoomed in, move the banner for the notification into your view 21:21:46 DG: back to the slides 21:21:47 q- 21:21:59 DG: Notification API Array priorities 21:22:23 s/Zoomed in,/Zoomed in with ZoomText or HoverText for example with an out-of-view visual notification,/ 21:22:47 DG: insert message at beginning, end of array, clear array 21:23:15 q+ to ask are we missing the simplest possible use case. Often we need a notification just to confirm that the action the user did actually succeeded. It really doesn't need a message. Is this something different? 21:23:37 matt_king: platform API needs to have the richness to manage it 21:23:44 q+ 21:24:48 cyns: where does this array live? In the browser? In the platform AAPI? 21:25:00 DG: in the platform AAPI 21:25:26 DG: Notification API - processing recommendations/restrictions slide 21:25:46 DG: Developer feedback to address 21:25:50 q+ to ask about the component scope of notifications, can one part of the page clear the queue from another part? 21:26:25 DG: should you support SSML? SR vendors nervous about that 21:26:46 DG: should it support braille strings? SR vendors - don't block on it 21:27:00 q+ to address the "don't want to hold up the API" comment 21:27:00 DG: SR vendors want better guidance, better docs 21:27:17 q+ to ask about guidelines for AT 21:27:33 zakim, close the queue 21:27:33 ok, jamesn, the speaker queue is closed 21:27:36 DG: Better maginifier interaction 21:27:58 DG: make queues easier to implement 21:28:05 DG: Call to Action 21:28:18 DG: does feedback resonate? 21:28:30 DG: more feedback - what about spam? 21:28:52 ack me 21:28:52 jamesn, you wanted to ask are we missing the simplest possible use case. Often we need a notification just to confirm that the action the user did actually succeeded. It really 21:28:55 ... doesn't need a message. Is this something different? 21:29:00 q? 21:29:41 jamesn: we hear from developers that they want to be able to announce task succes/failure 21:30:06 DG: guidance - if focus doesn't change, then announce 21:30:40 ack Jamie 21:31:42 jamie: I have concerns about the array concept, too implementation specific 21:32:04 jamie: horrified by implementation example of custom list box. should just use aria 21:32:11 +1000 21:32:17 ack me 21:32:17 jcraig, you wanted to ask about the component scope of notifications, can one part of the page clear the queue from another part? and to address the "don't want to hold up the API" 21:32:20 ... comment 21:32:22 ack jcraig 21:33:14 jcraig: component scope of notifications. Should one component be able to clear notifications from another? 21:33:34 jcraig: let's be sure that we're launching something good, not just fast 21:33:53 DG: Can some features be in stages 21:34:17 ack cyns_ 21:34:17 cyns_, you wanted to ask about guidelines for AT 21:34:43 jcraig: as long as it's strucutred so that we can add things in a way that 21:35:12 ack me 21:36:23 matt_king: we are getting feedback in aria-at that guidance is helpful 21:38:06 jamie: it seems that the tone is chaging on that 21:43:17 dmontalvo-mac has joined #aria 22:05:49 Adam_Page has joined #aria 22:06:20 andrea_cardona has joined #aria 22:07:51 scribe: Adam_Page 22:07:56 dmontalvo-mac has joined #aria 22:08:12 sarah_higley: bit of an overview for folks who have’t followed along or forgotten 22:08:32 ... secondary actions are additional actions on a primary action, such as a tabset, where tabs are the primary actions and [ Close tab ] are a secondary 22:08:48 ... or a list item, with secondary actions of favorite, share, etc. 22:09:03 ... or in MS Teams, a list of meeting participants, each one of which has secondary actions of mute, etc. 22:09:16 ... in composite widget roles, there is currently no mechanism to add secondary operations 22:09:32 ... you can’t have children interactive items, or non-interactive items in a menu 22:09:38 ... there’s no reliable way to semantically create that UI 22:09:52 scotto has joined #aria 22:10:02 ... there’s a recently merged PR to change the definition of “required owned element” and “required context role” 22:10:17 ... define the specifics of what the DOM tree needs to look like for a menu 22:10:25 Rashmi has joined #aria 22:10:29 ... e.g., a menu can’t be nested inside a listbox inside a menu 22:10:46 ... there is explicitly no room to add an additional button inside the menu 22:11:01 ... i also have a test page 22:12:04 ... there are other use cases for this beyond composite widgets, such as video to mute/unmute, play/pause, etc. without needing to navigate to associated buttons 22:12:04 ... there is a lot of discussion for this in issue #1440. There’s a draft PR #1805 22:12:04 https://github.com/w3c/aria/issues/1440 22:12:04 sirib has joined #aria 22:12:04 https://github.com/w3c/aria/pull/1805 22:12:47 ... context menu is not a substitute for secondary actions because 1) keyboard access is not universal, 2) does not solve visual/DOM presence of nested actions, 3) less discoverable 22:14:06 ... for sighted users, secondary actions are often visibly much more discoverable 22:14:26 ... in VoiceOver, the actions rotor could be a place for secondary actions to be surfaced, as one example 22:15:18 Jamie: Talkback also has an actions menu 22:15:23 Matt_King: it’s crazy hard to get to 22:15:30 Jamie: 100% 22:15:43 q? 22:16:02 sarah_higley: aria-details is another thing that exists and is similar to secondary actions 22:16:14 ... has browser and some screen reader support already 22:16:20 i/scribe: Adam_Page/topic: Secondary Actions/ 22:16:29 rrsagent, make minutes 22:16:30 I have made the request to generate https://www.w3.org/2023/05/03-aria-minutes.html jamesn 22:17:30 ... the main difference between aria-actions and aria-details — similar in the abstract, but with different concrete UX needs 22:17:43 ... so the proposal is `aria-actions="[id list]"` 22:18:02 ... may reference any element with a widget role, exclude container roles (e.g. menuitem but not menu) 22:18:25 ... controls references by aria-actions MUST be visible and activatable when the referencing element is focused or is the current active descendant of a focused element 22:18:40 q+ 22:18:42 ... elements referenced by aria-actions do not participate in accname 22:19:00 ... elements references by aria-actions are allowed children of their referencing element, or that element’s parents 22:19:29 ... two options: 1) all nameable roles (with potential exceptions), 2) all elements of the base markup (with specific exceptions) 22:19:31 q+ to mention frozen element array element.ariaActionsElements 22:19:35 ... not `presentation` or `none`, for example 22:19:42 ... `generic` is an open question 22:19:44 zakim, open the queue 22:19:44 ok, jamesn, the speaker queue is open 22:19:45 q+ 22:19:51 q+ to mention frozen element array element.ariaActionsElements 22:20:05 q? 22:20:24 qq+ jcraig 22:20:37 Jamie: why do we need to change the naming spec? it feels like there could be cases where we do want them to be included in accname 22:20:44 DougGeoffray has joined #aria 22:21:01 ... author in a tweet for example, becomes an action so you can get to that person 22:21:10 ... why not aria-labelledby “yourself” 22:21:23 sarah_higley: the idea was name from content should just work 22:21:48 ... vast majority of time, I’d expect you wouldn’t want them to participate in accname 22:22:06 ... mute button would exist on every person in a meeting, for example 22:22:19 Matt_King: could we invert and recommend manual labeling when it’s desirable? 22:22:49 Jamie: yeah, understood, we just need to be sure we accommodate aria-labelledby 22:22:55 q? -v 22:23:03 sarah_higley: yes, and it will only affect name from content 22:23:03 q? --v 22:23:11 q? v 22:23:24 ... the attribute is on the element whose accessible name it affects 22:23:38 ack jcraig 22:23:38 jcraig, you wanted to react to cyns_ 22:23:41 ack me 22:23:41 jcraig, you wanted to mention frozen element array element.ariaActionsElements 22:24:04 q+ 22:24:08 jcraig: in theory, this is futureproof for shadow DOM because reflected DOM property would be AriaActionsElements 22:24:22 ... so two thumbs up from me 22:24:41 ack Matt_King 22:24:41 sarah_higley: yes, should reflect similarly to others 22:24:49 Matt_King: this might be controversial 22:24:54 ... I’m leery of current scoping 22:25:10 ... want to challenge “anything that is nameable” 22:25:36 ... if we do that, and the action button that has to be visible, there are a lot of nameable containers that don’t get focus in any screen readers 22:25:42 ... a landmark, for instance 22:25:44 qq+ 22:25:55 ... does that mean the custom action for that landmark is exposed on every single child? 22:26:02 sarah_higley: no 22:26:09 ack me 22:26:09 jamesn, you wanted to react to Matt_King 22:26:41 sarah_higley: take a dialog 22:26:49 ... a dialog could have a close actions 22:26:55 ... there’d still be a visible button 22:27:11 ... like an alert dialog, or another dialog that has no interactive items 22:27:27 ... so prohibiting aria-actions on dialogs _seems_ like a bad idea? 22:27:43 Matt_King: I’m leaning toward prohibiting in that case *would* be a good idea 22:27:47 q+ to explain the "secondary" context and Matt's "prohibition" 22:27:47 ... what’s the value to the screen reader user? 22:28:04 ... elements that do the actions are things that are present and focusable 22:28:24 Jamie: it would be easier to prohibit for now and then add other use cases later 22:28:38 ... address the use cases that we care about the most 22:28:52 Matt_King: exactly, be conservative here so we don’t have to backtrack 22:29:07 ... I have another concern about screen readers that don’t change their virtual cursor focus 22:29:56 ... if you have actions in a tablist on the tabs, and you’re reading through the tabs, where would focus go for one of those screen readers? 22:30:08 sarah_higley: it’s a tradeoff 22:30:16 ... requiring all actions to be present in the DOM is a lot of weight 22:30:31 ... especially for a grid, and goes against common interaction patterns 22:31:10 ack scotto 22:31:20 ack me 22:31:20 jcraig, you wanted to explain the "secondary" context and Matt's "prohibition" 22:31:24 q+ scotto 22:31:41 jcraig: these are intended as “secondary” actions 22:31:58 ... the actions rotor came about in iOS to expose some of these easy access methods that were accessible through some other means 22:32:36 ... e.g., you’re in the Mail app on the phone. You can certainly go into the message to find secondary operations. But can be tedious, so we added gestures, etc. for easier exposure of those. 22:32:45 ... the action rotor has the same intention 22:32:56 ... a number of ways to get to the same action 22:33:17 ... the intention is to be a convenience; not the *only* way to get to the action 22:34:03 ... the bit about “prohibition” where I disagree is I want ARIA primitives that are simple to understand and simple to use 22:34:13 ... fewer conditions for the author 22:34:22 ... authors are going to make mistakes 22:34:30 q? 22:34:37 q+ 22:34:39 ... we shouldn’t design an API to be overly complicated so that only experts can figure out how to make it work 22:34:54 ... the detail on how this action is exposed doesn’t require that a screen reader should be able to land on this container 22:35:30 ... let’s say we’re in Gmail, I should be able to easily delete a focused message 22:35:50 ... another example is a video container 22:36:03 ... play/pause or change audio track is something you can do from anywhere within the container 22:36:19 ... I like the idea of a primitive actions menu that works in any scenario 22:36:35 q+ 22:36:40 ... there’ll always be some web author that comes up with a great example that could break our conditions 22:37:07 sarah_higley: I do have a slide for decisions to make which touches on this 22:37:13 ack scotto 22:37:46 scotto: you can’t put a button inside a button because the parser will just kick that button out 22:37:52 ... there may need to be additional work with HTML 22:37:57 ... not necessarily a parser change 22:38:06 ... some sort of communication to let them know about a feature like this 22:38:29 ... there is a potential feature or guidance that we need to consider bubbling up to the HTML spec 22:38:50 ... so that when people do use this and they do try to misuse it, we should be able to explain why and what they should be doing instead 22:38:58 q+ to suggest this should change element continuations 22:39:47 sarah_higley: in Office desktop, the font color “split button” — you press the button to change to the last chosen one, OR open a menu of all colors 22:39:52 ... that’s kind of a button inside a button 22:40:10 ack Matt_King 22:40:43 Matt_King: the same way we have aria-selected, you can’t put it on all nameable elements. You could maybe make an argument that that policy was a mistake, but that’s the reality 22:40:47 ... I look at this the same way 22:41:43 ... I’m concerned about the idea that you could have aria-actions on an element that is spoken but not a navigable stop in the DOM 22:41:48 q+ 22:42:06 ... and maybe this is the time to suggest that certain screen readers need to change how they behave 22:42:10 ... but we’d need to pull them in 22:42:44 sarah_higley: I can see a potential SR mechanism for aria-actions. Right now it’s a semantic convenience, but you could have a SR key to pull up actions, similar to rotor, which would autofocus the control 22:43:00 qv? 22:43:03 ... focusing the control could enable access to the secondary actions 22:43:42 ... say you navigate to the primary action with your virtual cursor, the SR sees aria-actions, and can then present secondary actions 22:44:04 ack jamie 22:44:07 ack Jamie 22:44:26 Jamie: for me the main question is — VO in iOS also doesn’t present landmarks as a navigable stop 22:45:03 ... it worries me to allow something to be broad and then a situation where authors will say browser/AT aren’t complying with the spec, but they’re reasonably saying it’s impossible 22:46:16 ... the fact we can’t spitball a good UX for this is a red flag 22:46:36 sarah_higley has joined #aria 22:46:40 q? 22:46:42 q+ 22:47:49 Jamie: we should start with a narrow, concrete use case and not be too permissive at first 22:48:33 jcraig: we’ve already got this video example, where the container has no role, but it would benefit from aria-actions, as broadly spec’d already 22:48:48 Jamie: well, video is an interactive thing 22:49:10 q- 22:49:36 q+ 22:50:07 jamesn: we could limit it to interactive elements only 22:50:23 ack me 22:50:23 jcraig, you wanted to suggest this should change element continuations 22:50:28 ack me 22:50:31 sarah_higley: we could conceive a third policy option 22:51:22 jcraig: certainly this should not allow a literal