IRC log of aria-virtualcontent on 2019-09-18

Timestamps are in UTC.

01:45:36 [RRSAgent]
RRSAgent has joined #aria-virtualcontent
01:45:36 [RRSAgent]
logging to https://www.w3.org/2019/09/18-aria-virtualcontent-irc
01:45:39 [wseltzer]
rrsagent, make logs public
01:45:47 [wseltzer]
wseltzer has left #aria-virtualcontent
04:28:51 [cwarnier]
cwarnier has joined #aria-virtualcontent
04:29:52 [cwarnier]
cwarnier has left #aria-virtualcontent
04:33:06 [MasakazuKitahara]
MasakazuKitahara has joined #aria-virtualcontent
04:34:40 [CharlesHall]
CharlesHall has joined #aria-virtualcontent
04:35:38 [melanierichards]
melanierichards has joined #aria-virtualcontent
04:36:16 [aboxhall_]
aboxhall_ has joined #aria-virtualcontent
04:36:26 [Jemma_]
Jemma_ has joined #aria-virtualcontent
04:36:32 [Jemma_]
present+
04:36:39 [achraf]
achraf has joined #aria-virtualcontent
04:36:41 [aboxhall_]
present+
04:36:42 [CharlesHall]
present+
04:36:49 [achraf]
present+
04:37:04 [melanierichards]
present+
04:37:04 [CharlesL]
CharlesL has joined #aria-virtualcontent
04:37:09 [dot-miniscule]
dot-miniscule has joined #aria-virtualcontent
04:37:13 [Lauriat]
Lauriat has joined #aria-virtualcontent
04:37:21 [Rossen_]
Rossen_ has joined #aria-virtualcontent
04:37:41 [Roy]
Roy has joined #aria-virtualcontent
04:37:51 [alastairc]
alastairc has joined #aria-virtualcontent
04:37:55 [mhakkinen]
mhakkinen has joined #aria-virtualcontent
04:38:02 [CharlesL]
present+ CharlesL, Benetech
04:38:04 [rakina]
rakina has joined #aria-virtualcontent
04:38:11 [Lauriat]
scribe chuck:
04:38:15 [Zakim]
Zakim has joined #aria-virtualcontent
04:38:22 [Lauriat]
scribe: chuck
04:38:47 [joanie]
joanie has joined #aria-virtualcontent
04:39:03 [Lauriat]
Rossen: Good afternoon
04:39:11 [mounir]
mounir has joined #aria-virtualcontent
04:39:30 [Lauriat]
Rossen: let scribe know your name. Quick intros
04:39:36 [CharlesL]
scribe: Lauriat
04:39:36 [Lauriat]
Rossen: I'm with microsoft.
04:39:38 [Rossen_]
Rossen Atanassov, Microsoft
04:39:49 [Lauriat]
Janina: chair
04:39:51 [joanie]
present+ Joanmarie_Diggs
04:40:01 [Lauriat]
Alice: Google
04:40:02 [melanierichards]
Melanie Richards, Microsoft
04:40:03 [aboxhall_]
Alice Boxhall, Google, TAG
04:40:20 [rakina]
Rakina, Google
04:40:39 [Roy]
present+
04:41:18 [joanie]
Joanie Diggs, Igalia
04:41:21 [mhakkinen]
present+ mhakkinen
04:41:23 [MasakazuKitahara]
present+
04:41:29 [achraf]
Achraf Othman, Mada Center
04:41:29 [mounir]
Present+
04:41:32 [Lauriat]
present+ Chuck
04:41:46 [mhakkinen]
mark hakkinen - educational testing service (ets)
04:42:13 [Lauriat]
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]
bajones has joined #aria-virtualcontent
04:42:40 [Lauriat]
Rossen: What I mean is there are a lot of common patterns on the web, not news to anyone.
04:42:44 [jcraig]
jcraig has joined #aria-virtualcontent
04:43:01 [Lauriat]
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 [Lauriat]
Rossen: Social media like facebook, lower content down to cell phone, and others.
04:43:41 [Lauriat]
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 [Lauriat]
Rossen: A different pattern is dynamically loaded content for performance reasons.
04:44:23 [Lauriat]
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 [Lauriat]
Rossen: ATs are aware of realized content pushed down to user agents creating dom layout and accessibility tree.
04:45:06 [Lauriat]
Rossen: Headings (for example) narrator will read headings and say there's no more headings, no more content.
04:45:19 [Lauriat]
Rossen: If user scrolled down one page, there should be a heading.
04:45:48 [Lauriat]
Rossen: If you look through various posts I'm showing a webim screen reader server. #2 request reads <reads content>
04:45:56 [Lauriat]
Rossen: That's exactly use case for this pattern.
04:46:28 [Lauriat]
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]
bruce has joined #aria-virtualcontent
04:46:59 [Lauriat]
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 [Lauriat]
Rossen: 1) Authors of web content should have minimal effort to implement solution.
04:47:41 [Lauriat]
Rossen: ...we've tried with internal partners when working on different ways to approach this...
04:47:52 [Lauriat]
Rossen: When something needs to change in business logic it becomes end of discussion.
04:48:10 [Lauriat]
2) AT's should be able to continue to innovate. This pattern shouldn't hold them back.
04:48:25 [Lauriat]
3) Authors and web developers shouldn't be able to observe or fingerprint an AT.
04:48:49 [Lauriat]
Rossen: As the title says, proposal is that we will introduce an attribute called "aria-virtual-content"
04:49:15 [Lauriat]
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_]
Lauriat_ has joined #aria-virtualcontent
04:49:44 [Lauriat]
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 [Lauriat]
Rossen: or in other cases where not permissive they will go through system api and build their own structure.
04:50:27 [Lauriat]
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 [Lauriat]
Rossen: They assume that everything they have in current accessibility tree is all of it. They have 4 headings for example.
04:51:03 [Lauriat]
Rossen: User says "navigate through headings", a collection will be created (four elements inside).
04:51:15 [Lauriat]
Rossen: On last one, user hits next, the AT will say no more items.
04:51:43 [Lauriat]
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 [Lauriat]
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 [Lauriat]
Rossen: We are allowing authors to say there is more content.
04:52:49 [Lauriat]
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 [Lauriat]
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 [Lauriat]
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 [Lauriat]
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 [Lauriat]
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 [Lauriat]
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 [alastairc]
q+ to ask Does it rely on a user scrolling? Lot of AT users wouldn’t use scrolling to move down.
04:55:04 [Lauriat]
Rossen: The AT will have larger collection of headings.
04:55:24 [Lauriat]
Rossen: In order to demo, I have a private build of chromium.
04:55:37 [Lauriat]
Rossen: In my VM... pray to demo gods.
04:57:19 [Lauriat]
Rossen: Any questions so far?
04:57:43 [Lauriat]
Alice: How do we interpret the values to virtual content. block-start block-end for example.
04:57:50 [Lauriat]
Rossen: Current proposal...
04:58:06 [Lauriat_]
q+ to ask about scroll container delegation and other considered triggering mechanisms.
04:58:33 [Lauriat]
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 [Lauriat]
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 [Lauriat]
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 [Lauriat]
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 [jcraig]
WICG link Rossen mentioned: https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/master/Accessibility/VirtualContent/explainer.md
05:00:19 [Lauriat]
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 [jcraig]
http://discourse.wicg.io/t/proposal-new-aria-virtualcontent-attribute/3881
05:00:45 [Lauriat]
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 [Lauriat]
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 [Lauriat]
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 [Lauriat]
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 [Lauriat]
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 [Lauriat]
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 [Lauriat]
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 [Lauriat]
Rossen: Maybe there are more headings forward.
05:03:51 [Lauriat]
Rossen: More questions?
05:03:55 [jcraig]
Q?
05:04:04 [jcraig]
Ack al
05:04:04 [Zakim]
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 [Lauriat]
Alastair: Sort of getting answer from the link James posted... does it require the user to scroll?
05:04:27 [Lauriat]
Rossen: It does not.
05:04:57 [Lauriat]
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 [Lauriat]
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 [Lauriat]
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 [Lauriat]
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 [Lauriat]
Rossen: Hit bottom of content, and trigger the load.
05:06:47 [Lauriat]
Alastiar: That's how AT deals with it today.
05:07:03 [Lauriat]
Rossen: AT will have to optimize the experience. We don't want to dictate how it's done.
05:07:22 [jcraig]
Q
05:07:27 [jcraig]
q+
05:07:58 [Lauriat]
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 [Lauriat]
Alice: It will continue...
05:08:33 [Lauriat]
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 [joanie]
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 [Lauriat]
Rossen: Facebook for example, never ends.
05:08:51 [jcraig]
Ack Lau
05:08:51 [Zakim]
Lauriat_, you wanted to ask about scroll container delegation and other considered triggering mechanisms.
05:08:52 [Lauriat]
Alice: You could have gotten to end of content.
05:09:14 [Lauriat]
Shawn: You answered 2nd question, scroll deligates. You mentioned spreadsheet as example, 2 dimensions of scrolling.
05:09:51 [Lauriat]
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 [jcraig]
Q+ to mention two concerns: this seems like inherently (or at least apparently) blocking API, and the attr name “virtual content”
05:10:18 [Lauriat]
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 [Lauriat]
Rossen: ...and I'm expecting same chain of events to happen.
05:10:51 [Lauriat]
Shawn: Any other mechanisms considered for triggering the loading of content?
05:11:14 [Lauriat]
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 [Lauriat]
Rossen: To allow an AT to trigger the load logic.
05:11:36 [Lauriat]
Shawn: Wracking my brain. I'll think more about it.
05:11:45 [Lauriat]
Rossen: I'd love to hear more though.
05:11:59 [jcraig]
Ask jc
05:12:05 [jcraig]
Ack jc
05:12:05 [Zakim]
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 [Lauriat]
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 [Lauriat]
James Craig: Input Career, content editable region. Use aria live to make it accessible.
05:13:22 [Lauriat]
James Craig: Back to ... Shawn, is that a fair rep of google docs?
05:13:40 [Lauriat]
Shawn: Fair for one interaction. Braille is different. Definitely a common thing across browsers.
05:13:56 [Lauriat]
James Craig: 2 concerns. This is a problem we should solve. Load more is valid all over the place.
05:14:08 [Lauriat]
James Craig: Above, below sideways.
05:14:33 [Lauriat]
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 [Lauriat]
James Craig: Not in web?
05:14:53 [Lauriat]
Rossen: Yes on the web. You mentioned iCloud or app?
05:15:12 [Lauriat]
James Craig: iCloud and Google Docs implement accessibility work-arounds, not a pattern we want to keep.
05:15:17 [Lauriat]
Shawn plus ones
05:15:54 [Lauriat]
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 [Lauriat]
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 [Lauriat]
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 [Lauriat]
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 [Lauriat]
Rossen: How will sighted user have better experience?
05:17:43 [Lauriat]
James Craig: That user's experience is to scroll and then stop.
05:17:44 [joanie]
+1 to some sort of load more widget
05:17:54 [Lauriat]
Rossen: Why are we trying to have a different experience for the AT users?
05:18:21 [Lauriat]
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 [Lauriat]
Shawn: This would have to be a 2 step process.
05:19:00 [Lauriat]
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 [joanie]
q?
05:19:19 [Lauriat]
Rossen: You will get ... the content that is blurred/pre-rendered into the actual content.
05:19:35 [Lauriat]
Shawn: It's rendered in canvas, starts blurry and then gets sharper.
05:19:51 [alastairc]
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 [Lauriat]
Shawn: The rendered content would take forever if you incrementally scroll rather than the abstracted visual James described.
05:20:29 [Lauriat]
James Craig: My point is... I think you are leaning to scrolling... web developers don't have to do anything special.
05:20:53 [Lauriat]
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 [Lauriat]
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 [Lauriat]
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 [Lauriat]
Shawn: It would still apply.
05:22:17 [Lauriat]
James Craig; 2nd concern is naming virtual content.
05:22:23 [Lauriat]
Alice: We can discuss off line.
05:22:34 [joanie]
ack me
05:22:34 [Zakim]
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 [Lauriat]
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 [aboxhall_]
s/Joni/Joanie/
05:23:21 [Lauriat]
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 [jcraig]
S/Digs/Diggs/
05:23:38 [CharlesL]
CharlesL has joined #aria-virtualcontent
05:23:43 [Lauriat]
Joanie Digs: I don't have a way to scroll the bottom of the article to the top edge.
05:24:10 [Lauriat]
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 [Lauriat]
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 [Lauriat]
Rossen: May not have explained it that well.
05:24:47 [CharlesL]
q+
05:25:09 [jcraig]
Ack CharlesL
05:25:31 [Lauriat]
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 [Lauriat]
Rossen: Absolutely. We discussed a little bit with internal team that works on epub viewer. Yes.
05:26:12 [Lauriat]
Rossen: I can see adding this type of trigger as they prepare epub content.
05:26:18 [jcraig]
s/Joni/Joanie/g
05:26:31 [jcraig]
s/Digs/Diggs/g
05:26:46 [Lauriat]
Rossen: two windows side by side. windows on left and chrome on right.
05:27:10 [Lauriat]
Rossen: If I go through headings, I know the doc has 8.
05:27:27 [Lauriat]
Rossen: As I try to go to next heading, there are no more headings.
05:27:40 [Lauriat]
Rossen: <presents demo>
05:27:48 [jcraig]
(Narrator SR demo)
05:28:38 [Lauriat]
Rossen: Live code.
05:29:49 [Lauriat]
joanie: "Section loading content?"
05:29:58 [Lauriat]
Rossen: That came from a live region for the demo.
05:30:10 [joanie]
joanie has left #aria-virtualcontent
05:33:58 [st]
st has joined #aria-virtualcontent
05:34:59 [aboxhall_]
#xr-a11y
05:35:04 [aboxhall_]
dangit
05:35:33 [CharlesL]
CharlesL has joined #aria-virtualcontent
05:39:45 [Roy]
Roy has joined #aria-virtualcontent
05:56:32 [mounir]
mounir has left #aria-virtualcontent
06:34:23 [CharlesL]
CharlesL has joined #aria-virtualcontent
07:25:49 [Zakim]
Zakim has left #aria-virtualcontent
07:30:11 [Lauriat_]
Lauriat_ has left #aria-virtualcontent
08:04:00 [CharlesL]
CharlesL has joined #aria-virtualcontent
08:52:05 [CharlesL]
CharlesL has left #aria-virtualcontent