01:45:36 RRSAgent has joined #aria-virtualcontent 01:45:36 logging to https://www.w3.org/2019/09/18-aria-virtualcontent-irc 01:45:39 rrsagent, make logs public 01:45:47 wseltzer has left #aria-virtualcontent 04:28:51 cwarnier has joined #aria-virtualcontent 04:29:52 cwarnier has left #aria-virtualcontent 04:33:06 MasakazuKitahara has joined #aria-virtualcontent 04:34:40 CharlesHall has joined #aria-virtualcontent 04:35:38 melanierichards has joined #aria-virtualcontent 04:36:16 aboxhall_ has joined #aria-virtualcontent 04:36:26 Jemma_ has joined #aria-virtualcontent 04:36:32 present+ 04:36:39 achraf has joined #aria-virtualcontent 04:36:41 present+ 04:36:42 present+ 04:36:49 present+ 04:37:04 present+ 04:37:04 CharlesL has joined #aria-virtualcontent 04:37:09 dot-miniscule has joined #aria-virtualcontent 04:37:13 Lauriat has joined #aria-virtualcontent 04:37:21 Rossen_ has joined #aria-virtualcontent 04:37:41 Roy has joined #aria-virtualcontent 04:37:51 alastairc has joined #aria-virtualcontent 04:37:55 mhakkinen has joined #aria-virtualcontent 04:38:02 present+ CharlesL, Benetech 04:38:04 rakina has joined #aria-virtualcontent 04:38:11 scribe chuck: 04:38:15 Zakim has joined #aria-virtualcontent 04:38:22 scribe: chuck 04:38:47 joanie has joined #aria-virtualcontent 04:39:03 Rossen: Good afternoon 04:39:11 mounir has joined #aria-virtualcontent 04:39:30 Rossen: let scribe know your name. Quick intros 04:39:36 scribe: Lauriat 04:39:36 Rossen: I'm with microsoft. 04:39:38 Rossen Atanassov, Microsoft 04:39:49 Janina: chair 04:39:51 present+ Joanmarie_Diggs 04:40:01 Alice: Google 04:40:02 Melanie Richards, Microsoft 04:40:03 Alice Boxhall, Google, TAG 04:40:20 Rakina, Google 04:40:39 present+ 04:41:18 Joanie Diggs, Igalia 04:41:21 present+ mhakkinen 04:41:23 present+ 04:41:29 Achraf Othman, Mada Center 04:41:29 Present+ 04:41:32 present+ Chuck 04:41:46 mark hakkinen - educational testing service (ets) 04:42:13 Rossen: I want to gather everyone here to talk about the issue of enabling assistive tech to work with virtualized content outside of client. 04:42:34 bajones has joined #aria-virtualcontent 04:42:40 Rossen: What I mean is there are a lot of common patterns on the web, not news to anyone. 04:42:44 jcraig has joined #aria-virtualcontent 04:43:01 Rossen: Most apps that are doing things at scale tend to virtualize large parts of content and deliver smaller view. For example 04:43:20 Rossen: Social media like facebook, lower content down to cell phone, and others. 04:43:41 Rossen: Probably described well, large content on server side, presented view on client that will make AT think it's the totality of content. 04:43:57 Rossen: A different pattern is dynamically loaded content for performance reasons. 04:44:23 Rossen: Content kept on server side, optimized for client side. Good thing to do. But from AT observes the smaller number of pages. 04:44:46 Rossen: ATs are aware of realized content pushed down to user agents creating dom layout and accessibility tree. 04:45:06 Rossen: Headings (for example) narrator will read headings and say there's no more headings, no more content. 04:45:19 Rossen: If user scrolled down one page, there should be a heading. 04:45:48 Rossen: If you look through various posts I'm showing a webim screen reader server. #2 request reads 04:45:56 Rossen: That's exactly use case for this pattern. 04:46:28 Rossen: When we thought of how to approach the solution on browser side it was a little bit daunting to approach the complexity of the web, number of patterns how things are fetched. 04:46:39 bruce has joined #aria-virtualcontent 04:46:59 Rossen: with libraries and what not, in order to make something possible that will solve this problem we came up with a few principals that hopefully if satisfied will allow content to become accesswible. 04:47:20 Rossen: 1) Authors of web content should have minimal effort to implement solution. 04:47:41 Rossen: ...we've tried with internal partners when working on different ways to approach this... 04:47:52 Rossen: When something needs to change in business logic it becomes end of discussion. 04:48:10 2) AT's should be able to continue to innovate. This pattern shouldn't hold them back. 04:48:25 3) Authors and web developers shouldn't be able to observe or fingerprint an AT. 04:48:49 Rossen: As the title says, proposal is that we will introduce an attribute called "aria-virtual-content" 04:49:15 Rossen: That simply is an indicator to AT that the content currently presenting through AT to end user is not all of it. There's more content on the server side. 04:49:42 Lauriat_ has joined #aria-virtualcontent 04:49:44 Rossen: If we think about the case of headings for example. More often than not the AT will build collection by fetching info from browser (injecting themselves) 04:50:03 Rossen: or in other cases where not permissive they will go through system api and build their own structure. 04:50:27 Rossen: There is this duplicated data in the browser and AT and what is presented to the user. When they start innovating and allow different modes of operation 04:50:43 Rossen: They assume that everything they have in current accessibility tree is all of it. They have 4 headings for example. 04:51:03 Rossen: User says "navigate through headings", a collection will be created (four elements inside). 04:51:15 Rossen: On last one, user hits next, the AT will say no more items. 04:51:43 Rossen: So this is where the aria-virtual-content comes into play. The author managing the HTML and dom side can say "by the way, in that container" 04:52:10 Rossen: is used for virtual content. At some point more stuff will be added. Don't assume everything you have (the 4 headings) are all of the headings, there might be more. 04:52:21 Rossen: We are allowing authors to say there is more content. 04:52:49 Rossen: They have no idea if there's an AT, and they shouldn't. From AT point of view. Once AT realizes it's in this container, as it navigates through headings, when the end is reached... 04:53:11 Rossen: I can get the size and scroll that into view, more or less what the guidelines are asking ATs to do anyways. As they scroll a cool thing happens. 04:53:37 Rossen: When you scroll down the content, you are triggering a pattern. When I as a sighted user goes to facebook, I scroll down and a script is triggered 04:54:03 Rossen: More content is generated and displayed. Same things happen if I have a document and I don't know where the next heading is. For the time being I'm not considering cases such as TOC. 04:54:22 Rossen: If Word online wants to create a table of content and triggers that's already possible. We are going after the generic case. 04:54:56 Rossen: When we started thinking about this, as the scroll fetches more content, if the author is nice they could realize that they are loading content and add aria-live region and inform the user. 04:54:59 q+ to ask Does it rely on a user scrolling? Lot of AT users wouldn’t use scrolling to move down. 04:55:04 Rossen: The AT will have larger collection of headings. 04:55:24 Rossen: In order to demo, I have a private build of chromium. 04:55:37 Rossen: In my VM... pray to demo gods. 04:57:19 Rossen: Any questions so far? 04:57:43 Alice: How do we interpret the values to virtual content. block-start block-end for example. 04:57:50 Rossen: Current proposal... 04:58:06 q+ to ask about scroll container delegation and other considered triggering mechanisms. 04:58:33 Rossen: Things got interesting here. Current proposal... linking to explainer. When we were experimenting with different applications and how to understand patterns of AT fetching content 04:58:58 Rossen: And trigger loading events. The first solution that we had was sort of a binary. You HAVE content or you do not. AT can start scrolling until they fetch more content. 04:59:23 Rossen: The other value was NOT. Or remove attribute all together. The more we experimented the more it was prominent that it's better to have... 04:59:56 Rossen: more information as to where in the virtual ... or paging application such as google docs, do I have any virtual content for example in the back of my scroll timeline or forward. 04:59:57 WICG link Rossen mentioned: https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/master/Accessibility/VirtualContent/explainer.md 05:00:19 Rossen: The values in the current proposal mapping to css concepts where we say in a scroller theres a block direction that's forwards and one that's backwards. 05:00:21 http://discourse.wicg.io/t/proposal-new-aria-virtualcontent-attribute/3881 05:00:45 Rossen: The need to trigger a forward scroll or a back scroll to load more content. If we think through the word scenario. As I fetch more pages... 05:01:07 Rossen: I'm de-virtualizing content in the past. I need to be able to say that there is more virtual content in the reverse direction. That worked fine. 05:01:33 Rossen: Then we talked with other partners. They said "that's useful, but we have columns in the horizontal direction, and we need to tell the user". 05:01:56 Rossen: As we did this now we enabled this sort of 2 dimensional virtual awareness to say that I have content top/bottom/right/left. 05:02:17 Rossen: We aren't married to the conventions. It gets a little better. The more we talked about it with early adopters to the prototype 05:02:43 Rossen: The more we found a different pattern. How about... you as an app developer. You know if you have any content of that type. Content authors 05:03:07 Rossen: Understand what content they have. That's where playing with the value set becomes interesting. We can be more specific if we want to in the future. 05:03:18 Rossen: Maybe there are more headings forward. 05:03:51 Rossen: More questions? 05:03:55 Q? 05:04:04 Ack al 05:04:04 alastairc, you wanted to ask Does it rely on a user scrolling? Lot of AT users wouldn’t use scrolling to move down. 05:04:23 Alastair: Sort of getting answer from the link James posted... does it require the user to scroll? 05:04:27 Rossen: It does not. 05:04:57 Rossen: Normal use case is we are in a textual document with number of headings and info. Normal AT pattern is if you navigate buy heading... 05:05:22 Rossen: When the user moves to next item, they will do so internally, and scroll into view in the element inside the browser. 05:05:53 Rossen: The heading will be in view and it will also be announced. There could be a lot of paragraphs until the next heading. More often than not the trigger to load content will be towards the end of the fetch content. 05:06:28 Rossen: If I know there are more headings, I have an element that says I have more content, that will trigger normal javascript to load more content. A sighted user will do this, grab scroll bar or fling on touch 05:06:38 Rossen: Hit bottom of content, and trigger the load. 05:06:47 Alastiar: That's how AT deals with it today. 05:07:03 Rossen: AT will have to optimize the experience. We don't want to dictate how it's done. 05:07:22 Q 05:07:27 q+ 05:07:58 Alice: As a first pass for what the user experience might be, the user would get the ... depends on AT, the user would go next heading, and they would not be told it's last heading, they could do next heading again. 05:08:05 Alice: It will continue... 05:08:33 Rossen: If AT want's to say "heading 1 of 5" that's up to them, knowing they are in virtual content and not knowing how many headings are ahead. I prefer they don't know how many headings there are. 05:08:38 q+ To suggest we *may* need/want some browser implementations to help us out with the AT "innovations" due to how accessible scrolling APIs work. 05:08:39 Rossen: Facebook for example, never ends. 05:08:51 Ack Lau 05:08:51 Lauriat_, you wanted to ask about scroll container delegation and other considered triggering mechanisms. 05:08:52 Alice: You could have gotten to end of content. 05:09:14 Shawn: You answered 2nd question, scroll deligates. You mentioned spreadsheet as example, 2 dimensions of scrolling. 05:09:51 Shawn: Google's spreadsheet... it's rendered completely off screen. If you fire scroll events on points of focus, nothing will happen. Need to trigger a deligate. 05:09:54 Q+ to mention two concerns: this seems like inherently (or at least apparently) blocking API, and the attr name “virtual content” 05:10:18 Rossen: I described one pattern, a container of all headings. But could be a sibling. You can add wherever in the app layer. 05:10:37 Rossen: ...and I'm expecting same chain of events to happen. 05:10:51 Shawn: Any other mechanisms considered for triggering the loading of content? 05:11:14 Rossen: I want to have this meeting here and listen to what other types of events are common to make this successful. What are other patterns we can use 05:11:25 Rossen: To allow an AT to trigger the load logic. 05:11:36 Shawn: Wracking my brain. I'll think more about it. 05:11:45 Rossen: I'd love to hear more though. 05:11:59 Ask jc 05:12:05 Ack jc 05:12:05 jcraig, you wanted to mention two concerns: this seems like inherently (or at least apparently) blocking API, and the attr name “virtual content” 05:12:38 James Craig: The issue with google docs, pages for iCloud, the structure is so complex and unrelated to a norm accessibility tree structure, aria live regions will be used a lot. 05:13:05 James Craig: Input Career, content editable region. Use aria live to make it accessible. 05:13:22 James Craig: Back to ... Shawn, is that a fair rep of google docs? 05:13:40 Shawn: Fair for one interaction. Braille is different. Definitely a common thing across browsers. 05:13:56 James Craig: 2 concerns. This is a problem we should solve. Load more is valid all over the place. 05:14:08 James Craig: Above, below sideways. 05:14:33 Rossen: More clarification. I want to learn the pattern, learn how a sighted user would interact with safari and mac and trigger all of these content fetches. 05:14:39 James Craig: Not in web? 05:14:53 Rossen: Yes on the web. You mentioned iCloud or app? 05:15:12 James Craig: iCloud and Google Docs implement accessibility work-arounds, not a pattern we want to keep. 05:15:17 Shawn plus ones 05:15:54 James Craig: 2 concerns are... seems like a blocking api. In normal content would that be native or plain symantic html, in voice over you roter over to... 05:16:23 James Craig: User lands quickly. In the scenario you describe. If it's 20 pages down you are talking about a block of seconds maybe minutes in some cases while the page scrolls. 05:16:54 James Craig: User may become confused, or will be announced that the application is busy. This feels like a... I think the value of a load more widget to purposely activate it is valuable. 05:17:22 James Craig: Putting other content like headings feels like the wrong solution to that problem. I can get behind load more, but using this to jump to next heading won't solve problem. 05:17:31 Rossen: How will sighted user have better experience? 05:17:43 James Craig: That user's experience is to scroll and then stop. 05:17:44 +1 to some sort of load more widget 05:17:54 Rossen: Why are we trying to have a different experience for the AT users? 05:18:21 Shawn: If you scroll a doc quickly, you get visual indications of the shape of the text. If you see something big you will stop because it appears to be a heading. It's virtualized. 05:18:30 Shawn: This would have to be a 2 step process. 05:19:00 Rossen: Let's say we have a way to trigger the scroll. How will that differ? As AT sees no more headings, they will continue to hit the scroll even faster than sighted user. 05:19:10 q? 05:19:19 Rossen: You will get ... the content that is blurred/pre-rendered into the actual content. 05:19:35 Shawn: It's rendered in canvas, starts blurry and then gets sharper. 05:19:51 If the web app has a virtual representation (blurry view of blocks of text), could it provide a semantic map of a similar nature? 05:19:55 Shawn: The rendered content would take forever if you incrementally scroll rather than the abstracted visual James described. 05:20:29 James Craig: My point is... I think you are leaning to scrolling... web developers don't have to do anything special. 05:20:53 James Craig: Key think here is what happens, say the implementation was done perfectly, what happens if user swipes down with rotar, user expects to happen immediately. 05:21:25 Rossen: You aren't talking about... app level logic that is capable of displaying table of contents, that already has links. There should be no difference because this is the case today for AT users. 05:21:50 Rossen: If I go and pull out table of contents and navigate to 5, and I'm on page one, and on google docs I'm assuming triggering link will work the same way. 05:22:00 Shawn: It would still apply. 05:22:17 James Craig; 2nd concern is naming virtual content. 05:22:23 Alice: We can discuss off line. 05:22:34 ack me 05:22:34 joanie, you wanted to suggest we *may* need/want some browser implementations to help us out with the AT "innovations" due to how accessible scrolling APIs work. 05:22:56 Joni Digs: I am in favor of a scroll to widget or something like that or some other solution for a different reason. 05:23:10 s/Joni/Joanie/ 05:23:21 Joni Digs: I assume I want to scribe the document with the id, what I can do in my api I can scroll an object in relationship to ... scrollable thing. 05:23:36 S/Digs/Diggs/ 05:23:38 CharlesL has joined #aria-virtualcontent 05:23:43 Joanie Digs: I don't have a way to scroll the bottom of the article to the top edge. 05:24:10 Joanie Diggs: If there was some recognizable widget that is get me more stuff, I could scroll that to the top edge. 05:24:38 Rossen: Perfect example of what I described in the beginning. It doesn't have to be.... scrolling into view for that would serve both purposes. 05:24:46 Rossen: May not have explained it that well. 05:24:47 q+ 05:25:09 Ack CharlesL 05:25:31 Charles L: I see parallels with ebooks. You are in chapter 1 and you can scroll to bottom and chapter 2 appears. There might be use cases for publishing. 05:25:47 Rossen: Absolutely. We discussed a little bit with internal team that works on epub viewer. Yes. 05:26:12 Rossen: I can see adding this type of trigger as they prepare epub content. 05:26:18 s/Joni/Joanie/g 05:26:31 s/Digs/Diggs/g 05:26:46 Rossen: two windows side by side. windows on left and chrome on right. 05:27:10 Rossen: If I go through headings, I know the doc has 8. 05:27:27 Rossen: As I try to go to next heading, there are no more headings. 05:27:40 Rossen: 05:27:48 (Narrator SR demo) 05:28:38 Rossen: Live code. 05:29:49 joanie: "Section loading content?" 05:29:58 Rossen: That came from a live region for the demo. 05:30:10 joanie has left #aria-virtualcontent 05:33:58 st has joined #aria-virtualcontent 05:34:59 #xr-a11y 05:35:04 dangit 05:35:33 CharlesL has joined #aria-virtualcontent 05:39:45 Roy has joined #aria-virtualcontent 05:56:32 mounir has left #aria-virtualcontent 06:34:23 CharlesL has joined #aria-virtualcontent 07:25:49 Zakim has left #aria-virtualcontent 07:30:11 Lauriat_ has left #aria-virtualcontent 08:04:00 CharlesL has joined #aria-virtualcontent 08:52:05 CharlesL has left #aria-virtualcontent