Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CSS reading-flow property #978

Open
1 task done
dizhang168 opened this issue Jul 31, 2024 · 5 comments
Open
1 task done

CSS reading-flow property #978

dizhang168 opened this issue Jul 31, 2024 · 5 comments

Comments

@dizhang168
Copy link

こんにちは TAG-さん!

I'm requesting a TAG review of the CSS reading-flow property.

The CSS Working Group has resolved to add the new reading-flow property (w3c/csswg-drafts#8589, spec) to enable focus navigation in visual order for layout items that might not be displayed in source order (such as grid, flex and masonry items). Chromium is implementing the new property and opened a whatwg/html#10407 on the needed HTML spec change.

Further details:

@matatk
Copy link

matatk commented Nov 6, 2024

Hi @dizhang168, thanks for your review request. I have an accessibility question: the examples that I've seen in the explainers concentrate on showing how the (keyboard) focus navigation order, and visual rendering order, would be kept in synch when using reading-flow (which will be great, especially for masonry layout).

The examples I've seen all use interactive elements (specifically <buttons>) to demonstrate this. I just want to confirm: would this re-ordering apply to all content (i.e. not just interactive elements), though? (I am thinking of the case where, for example, a screen reader user would be navigating via their virtual cursor, following the order of content in the accessibility tree.)

From the explainers, and CSS spec, I imagine the intention is for the ordering to affect all content (not just interactive elements) - effectively the accessibility tree will come from the visual order, rather than source order.

Am I understanding this correctly?

@tabatkins
Copy link

Correct, focusable elements are just the easiest way to demonstrate this without requiring people to run a11y software themselves.

@dizhang168
Copy link
Author

Yes, this feature is for both focus navigation and the accessibility tree (the order in which AX nodes are added to the tree).

@matatk
Copy link

matatk commented Nov 20, 2024

Thank you @tabatkins, @dizhang168 for confirming (also, that is a neat idea and inclusive approach, re the examples). One further thing that came up in APA WG's discussion (HT @AutoSponge) is: we were wondering if there may be a need (practical/implementation or otherwise) for signals from the UA to the AT when a big reflow occurs (especially thinking of the Masonry case).

We are also following up with our AT vendor contacts, to see how much (if any) caching of the accessibility tree they do. If they don't need to do any, it may not be an issue, but if they do, such signals may be needed to ensure the reflowed layout is reflected.

If you have any thoughts on this, do let us (or APA WG may be a good avenue—you could use the "a11y-tracker" label) know. If we find out anything interesting, we'll feed it back to you.

@dizhang168
Copy link
Author

I don't think implementation wise it will be an issue. When the grid/flex/masonry layout gets created, the rendering-defined sibling reading flow gets stored. So, for the AT, the additional step is just looping these reading flow items (no need to calculate on the fly). If we do need to send a signal, it should be trivial to add.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment