On 4/16/24 09:57, Mason Freed wrote:
Thanks for the detailed reply, fantasai! And also thank you very much for
all of the hard work you and Tab have put into this feature to make it what
it is. We very much appreciate it.
And I appreciate all the hard work the Chrome Team has put into implementation
and iteration, as this was not an easy feature to fit into CSS's architecture.
Also for being open to revision from your original design.
One thing to note is that we’re very committed to addressing any open
issues, either now or after additional issues are discovered.
You won't be as open to change after you ship, though, because then (as you
yourself write further down!), you'll be weighing the change against breaking
compat.
It’s possible that issues would be discovered by the CSSWG community via a
spec-text-only review, but that’s much more likely to happen when many
developers are actively trying to make it work for their application using a
real implementation.
I think you misread what I wrote, so let me quote it again, with some
highlighting.
What's needed for Anchor Positioning at this time, and I was hoping we
could get, is *wide review on the revised design*:
* soliciting*feedback from authors*, to see if there are additional
things to tweak for usability, additional use cases we can adjust to
accommodate, or other points of difficulty we can resolve.
* soliciting*horizontal review at W3C, particularly wrt accessibility*.
(I think we handled most internationalization concerns in this last
round, and don't anticipate much wrt privacy or security, but
accessibility seems likely to turn up concerns.)
* soliciting*detailed review of the revised spec from CSSWG members*, to
ensure the details are completely, correctly, and reasonably
specified, and the feature is self-coherent and integrates well with
the rest of CSS.
You're responding as if I only made the third point (CSSWG spec review), so
let me number my points (so it's easier to pay attention to all of them), and
break them down with action items that would implement each one:
1. The *revised design* should get feedback *from authors*. For example by:
1. Shipping your revised implementation in test builds so devs can try
them out/and/
2. Posting about the new model in your DevRel channels so they know about
it and know to give feedback!
3. Presenting at e.g. CSS Day, and ideally inviting feedback on an
implementation the audience can test out and is excited about using
soon, /but is still possible to change in response to their feedback./
4. Posting to the CSSWG blog about the revised spec and inviting feedback
from authors (which wasn't done when the spec was republished in March).
5. and any other channels that make sense.
2. The feature should get *horizontal review at W3C* and especially *address
accessibility*. This should include:
1. Sending request to TAG, i18n, a11y, etc. in the appropriate channels
<https://www.w3.org/Guide/documentreview/#how_to_get_horizontal_review>.
2. Documenting any accessibility concerns, intentions, and best practices
in the spec, and addressing issues that come up.
3. Preparing to teach and promote accessible use of this feature together
with appropriate markup.
3. The edited spec should get a *last call review in the CSSWG*.
1. By sending a review request to the CSSWG/www-style noting the
revisions that /have landed/ and are ready to review, and, ideally,
noting that Chrome intends to ship soon so that reviewers can
prioritize accordingly.
Requesting review after a feature has shipped in production is not very
effective, since changes are constrained by compat.
I think it's particularly important for this feature because the more open the
design space, the more we need review; and a new layout model is one of the
most open design spaces in the realm of CSS.
I do believe we’ve been pretty actively soliciting feedback for the past two
years as the feature was developed, and we’ve received some great feedback
that helped shape the feature, particularly from Apple. Having said that, we
plan to participate in the steps to get to CR over time.
Yes, I acknowledge that; and you've gotten some great feedback from interested
authors over those two years. But you haven't gotten that level of review on
the feature after it was substantially redesigned, so the feature /as you're
planning to ship it/ hasn't had much, if any, review outside the CSSWG.
Again, I’m glad you don’t anticipate major changes.
I might not anticipate major changes, but I'm not the only person whose
feedback you should be soliciting. If it was just about me, I could get a
review done next week...
And we fully expect to see minor breaking changes as the feature gets wider
evaluation by developers. It would be natural to assume some reasonable such
changes over the coming months, and Chrome will be open to such changes if
they are compelling, even if they’re breaking.
There's "breaking" in the sense of "the underlying behavior got tweaked a bit,
and websites might change, and some sensitive ones might break"...
And then there's "breaking" in the sense that "we tweaked the syntax again,
and previous code is invalid" or "we changed default behavior, so most pages
will change layout". These are minor changes from an implementation point of
view, but they are not changes that are safe for a shipping implementation.
(For additional context, my response here is prompted by a non-Apple,
non-WebKit CSSWG member messaging me over the weekend and asking "isn't
this a bit premature?" So it's not just me/Apple that has some lingering
concerns. :)
This is a very large feature, so there is bound to be some discomfort about
shipping it, no matter when that shipment happens.
Not true: when a feature is solidly specified and reviewed, we typically don't
get this kind of reaction from the WG. Writing Modes, Grid Layout, Cascade
Layers, there are many features in CSS where I don't recall such hesitancy.
I do understand! But we’ve also received a significant number of developers
commenting that they were very excited to see this feature finally shipping
after all these years.
Of course they are! It's solving a very real problem. They would have been
excited even if you shipped off your first draft. But once that excitement
wears off, you want them to still find the feature delightful to use 5-10
years later.
Like Grid. We could have shipped off MSFT's first draft and authors would have
been super excited. But I don't think we would have had the consistently
positive reaction we have had to the much more developed and polished work
that actually ended up shipping.
In terms of scheduling, I think targetting the summer is better: Tab is
giving a talk on Anchor Positioning at CSS Day, which I think is a great
opportunity to present the full proposal and Chrome's implementation in
its latest form and solicit feedback from advanced CSS authors, and
there's a CSSWG F2F the following week during which we should be able to
resolve any issues remaining or raised during wide review.
I think you’re right that these venues will provide great opportunities to
discuss the feature and talk about improvements.
Improvements that you might not be able to incorporate because you are
planning to ship /before/ those opportunities!
Indeed, there is a long list of css-anchor-position-2 issues
<https://github.com/w3c/csswg-drafts/issues?q=is%3Aissue+is%3Aopen+label%3Acss-anchor-position-2>
that will provide discussion topics for many meetings to come, I’m sure.
Level 2 enhancements is not the topic of this thread.
On the topic of accessibility in particular....
Are there particular issues you’re aware of? The only one I’m aware of is
csswg-drafts/issues/9356 <https://github.com/w3c/csswg-drafts/issues/9356>
which talks about display and keyboard ordering.
That's the main one I'm aware of, but again, you didn't submit for
accessibility review...
Incidentally, that’s an issue that applies to Grid and Flexbox already, and
we’re actively working on a prototype implementation and spec proposal for
`reading-order-items`. But as evidenced by that, even Grid/Flexbox aren’t
fully “done” yet. Are there other a11y issues related to anchor pos? We’re
not aware of any, but please do raise the ones you see.
Grid and Flexbox were designed with accessibility in mind, with the reordering
functionality introduced /for the purpose of enhancing accessibility/. The
issue was debated multiple times, and their interaction with reading/tab order
was 100% intentional and well-documented in the spec. They shipped working as
intended, and authoring materials were able to incorporate best practices
accordingly. The new `reading-order-items` feature is to support /additional/
use cases. It's not there to "fix up" a broken accessibility model.
Afaict, Anchor Positioning's accessibility story is simply fallout from how it
happens to work. There's no documentation in the spec (or anywhere else
afaict) of design rationale or intended AT behavior, its consequences, or how
it's expected to be used by authors in a way that is accessibility-enhancing
rather than accessibility-breaking.
Your point about having the a11y story documented is a good one. We will
make sure to include that story in blog posts, etc. If you have particular
points to include, please do share.
"We'll figure it out later" is not a satisfactory answer to "is this feature
designed to support, rather than break, accessible layouts and if so how".
~fantasai
--
You received this message because you are subscribed to the Google Groups
"blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to blink-dev+unsubscr...@chromium.org.
To view this discussion on the web visit
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/cd946af0-820e-4142-8914-db07a1805979%40inkedblade.net.