-
Notifications
You must be signed in to change notification settings - Fork 4.2k
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
Navigation: OffCanvasEditor: Accessibility review #46939
Comments
I’m lacking a good deal of context here. I would be happy to test and provide any feedback but I’m not sure where to look to test. Are we talking about a newer navigation editorial flow and doing an audit of the component(s) that allow for it? |
@colorful-tones I'm assuming that this is about assessing the accessibility of the off canvas Navigation editor as enabled at Gutenberg > Experiments, which moves the editing of navigation menus into the sidebar, rather than within the design canvas. Based on my initial look, there's a bit more to be done than accessibility work - are there relevant PRs that complete the work more significantly? I only looked in Gutenberg 14.9 for my initial look, but it seemed pretty incomplete. |
Here is a live audit. Please do not take my comments personally, I just wish this had been thought out better before all this work. I am strongly of the opinion that this should not go in to Core. Thanks. video1552526668.mp4Notes from video (transcribed by @getdave):
|
I'm afraid I haven't been following the development work on this experiment very closely, and not sure what the intentions behind some of these changes are, so I'm going to start with some questions 😅
I enabled the experiment and had a quick play with it. As in Alex's video above, I though the "Open navigation list view" button didn't do anything. It was only on checking the code that I realised it's meant to open the sidebar. My sidebar was already open when I clicked it, so it seemed broken. What could be done to improve that?
Similarly, and also mentioned in Alex's video, when clicking "edit" on a Nav item from the sidebar, it would be good to keep focus in the sidebar (maybe direct it to the top section where the block name together with the "got to parent" button?). In the site editor, the Navigation sidebar has the same problem described in #15322: essentially, it's inaccessible to keyboard and screen readers. This is a wider problem for the site editor though, because it also affects global styles. |
The issue should probably have some testing instructions. Here are some things that I've spotted:
It'd be good to make a list of the things Alex mentioned too. There are some bigger ones, like the way focus is transferred to the canvas, that might be a challenging one to solve. |
For additional context I've updated the Issue description with links to the x2 calls for testing that were made on Make Blog for this feature over the past few months. |
@alexstine Thank you for taking the time to provide an overview here. We really appreciate it. We will dive into all aspects of accessibility and have been planning to address this from the get go of the project.
For context, as we were unsure whether the feature would provide a good experience for users at all we committed to building a working experiment first. This involved prioritising features over fidelity at all levels (including accessibility). Now the x2 calls for testing have provided us with confidence the feature has value we are turning our attention to all aspects of fidelity including:
Whilst we haven't ignored any of these aspects, we recognise that all of them will need significant attention prior to inclusion of the feature in WP Core. We have now paused all work on new features for the offcanvas and are focused solely on ensure the offcanvas is polished for all users.
Could I respectfully ask you to explain why you hold this opinion? What specifically makes you feel this is unsuitable? Or is it that just in its current state this is unsuitable? Bear in mind that offcanvas is largely based upon the existing Contributors working on this feature and more than happy to discuss/address any concerns fully. Update: i've watched your video in full and taken notes as best I could (I trust you won't mind that I updated your original comment with the notes?). Having watched this (as far as it is possible) I fully appreciate how frustrating this is. Contributors working here are fully committed to making this better. All the notes I took will be converted into individual Issues and I will cross link as Todos on this Issue. We will then work through them all. |
@talldan I went through all your points and created Issues for those which don't overlap with @alexstine's review.
You can achieve this for now using the options menu ("3 dots") for each individual node. Whilst it might be ideal to have a roving appender at some point (you and I have discussed in the past and I agree in principle), we have to deprioritise new features in favour of fidelity of existing so this is unlikely to be added. |
@tellthemachines Thank you for your feedback.
The "Offcanvas editor" is the current name is use to describe the experience of creatuing/editing a navigation menu using a list-view type interface in the inspector controls of the Navigaiton block (only). That experience is also being considered for the wider Site Editor sidebar but that's a separate effort by @jorgefilipecosta and others. Would love your input on a better name for this 🙏
I updated the description to clarity that this means removing the "experimental" gating around the feature and making it default in the Gutenberg Plugin. That does not mean we will merge into core. Instead the idea is that the feature will be subject to review (as all Gutenberg features are at feature freeze) and if not acceptable it will be gated behind a "is Gutenberg Plugin" flag and not shipped to WP Core. |
Hey there friends. First, thanks everybody for the in depth testing - it surfaced quite a list of issues. Second, I want to mention that the name "off canvas editor" imbues the whole feature with some extra importance that now acts as a blocker. So, to clarify:
From the above (2) is most important as editing nested content in the canvas is extremely hard - with or without assistive technology. It is unlikely we'll land on a perfect feature in one go, so offering a way for users to manage nested content in a localized tree, with specific features to that context, starting this via the navigation block, is a great ramp to figuring it out for all the cases. Third, @alexstine I think the "too little and chaotic context" problem of the editor is terrible and your concern is 100% valid. I also think that not shipping something indirectly affected by a problem will not fix the problem. We need to address the problem specifically. Editing content via the inspector is not only problematic for lack of context for users of assistive technology, it's also muddying the waters as to what does each part of the editor do. However, there's only so much space and so many affordances to use. I am sure contributors from all parts (design, docs, code, trainign) will come back to this many times and improve it based on feedback to a state incomparably better, that we can't foresee today - just look at how many improvements the navigation block got once people started actually using it. Fourth, and last 🙇🏻 , while there are still steps to be taken to make it ready for a WordPress release (fixing blocking accessibility problems, making sure the implementation architecture is sound) the improvement it produces needs to be accounted for: the purpose of the experiment was to validate the idea. The two calls for testing of the experiment showed that in many cases menus are easier to be edited in a sort of isolated tree, and this UX greatly improved the experience - far from being perfect. Removing the experimental flag will only allow more people to see and use the improvement and provide more feedback. Removing the experimental flag makes the feature available by default for Gutenberg plugin users. |
The biggest complication we have here is not managing focus. It is not even labeling buttons properly. List view does not complicate this much since it is 99% accessible at this point. The issue is, how do you communicate to blind users who have no point of reference on a page that some blocks are edited in the canvas and others are edited in the inspector sidebar? My goal for Gutenberg is to be seamless for keyboard and screen reader users. However, it is not seamless when you have to wait for announcement hints on how to use every block. This could be because the block has buttons or just a simple text field. It could be the fact that different blocks have different keyboard event listeners. It could be the fact that Gutenberg designers are really happy with no buttons and users just magically knowing pressing enter saves changes. It does not follow standard flow. I have said for a long time that if I require a list of keyboard shortcuts to use your accessible web app, you did something very wrong. That is kind of where Gutenberg is right now. Adding this feature will further add to the endless confusion for blind users specifically who have to deal with never ending changes in context and having no idea what one block experience will be like from the next. It may have a placeholder, it may just be a blank block wrapper, etc. If you can somehow convince me that you can eliminate this context problem, I will be more onboard for your idea. My doubts are heavy because this would be, in my opinion, a stretch if not impossible. What worries me further is where we go from here. If this block is a major success, are we going to end up with 5 more blocks like this? You see the problem? We cannot keep users guessing.
That has been my point though. This is purely a design issue, not one that required a massive re-design and stuff that could have lasting damage on the editor as a whole if this expands to other blocks. The thing is, it never ends with 1. It may start with 1, never ends with 1. Also, I have not even addressed third-party developers yet... Sigh... Thanks for opening all those issues. I am interested to see how this evolves. I just want my concerns very well noted that I think this could open up tons of possibilities for this to be a disaster for users with assistive tech. |
@alexstine Thanks for taking the time to respond here. Your concerns have been noted by all contributors. I'm hearing that you are concerned that the new Navigation list view will introduce an additional context problem for users of assistive tech.
There is no compunction for users to use the list view. In canvas editing will remain the primary means of interacting with the block (and indeed all blocks). We should consider that for other users who don't rely on keyboard or assistive tech, having a tree-based means of editing to complement in-canvas editing seems to be a big improvement. This is evidenced by the responses to the call for testing. Of course we should ensure that the list view feature is available and accessible for all users (we're working on that), but as no user is required to use it and it is a complementary feature to the in-canvas editing perhaps the problem is less pronounced? Maybe I'm wrong?
I don't for a minute want to downplay the wider concerns you (and others) have with Gutenberg around context switching. Having watched your video I can appreciate it's an issue but not one we can solve as part of this feature. If we were introducing a mandatory new means of editing then I'd agree that the Nav list view could be problematic. However, as it is complementary and entirely optional I wonder if by not introducing it we are doing a disservice to those users who value it as a complementary editing mechanic. My feeling is once we solve the focus problems in the Nav list view, the context issues you experienced will improve. The Issues I've created off the back of your video will go a long way towards that. However, in terms of the wider problem of context switching in the editor - that's outside the scope of this new feature. It's something that needs to be solved at a fundamental level and can then propagate out across the editor.
With respect, contributors have spent years attempting to produce a solid in-canvas editing experience for nested menus and it's proven to have shortcomings at every turn. That is a major problem for the editor and thus for WordPress in general because (as you know) navigation is a key facet of any website. The primary feedback about the Nav block for some time has been that it is extremely difficult to interact with in-canvas once levels of nesting are introduced. As I said, folks have tried to address this numerous times with little success. Indeed, I'm not even convinced it's a problem that it's possible to solve satisfactorily. Therefore, contributors felt the time had come to explore different options to provide an improved editing UX where necessary to complement the in-canvas editing experience. That doesn't mean it's now impossible to achieve the same tasks using the in-canvas editing. Indeed, for many users it might well be preferable to perform edits in canvas. If there are bugs around that experience (and I'm sure there are) then lets address those too.
You're welcome. Your feedback was invaluable here. I'm hopeful that the next few weeks will see a marked improvement in the core editing experience for assistive tech (at least on this particular feature). |
As long as this is an alternate and equal set of options (equal meaning that all the same features exist in both sets of controls), I think this is fine. I do think that we need to be very cautious about allowing blocks to have editing environments in the sidebar, however. I will definitely say that when attempting to use the in-canvas navigation block as a sighted mouse user, it is extremely difficult to use. Accessibility is about ensuring that all users can create content - as it stands, neither mechanism is really usable yet, but the tree view is much more similar to past views, so it's well worth exploring. |
I agree with @joedolson . As long as the exact same functionality will be implemented in both places and this is not a replacement, there is no reason to not try. With all this talk about making it available to Gutenberg plugin users, I guess I lost sight of the fact that this will simply compliment the experience. If keyboard users want to keep editing in the canvas, they are free to do so. They would never have to interact with the off canvas editing at all if they chose not to do so. If this is correct, I think we should work through the related issues and see where we end up. Sorry @getdave for confusing this issue so much. Most of my feedback was around showing you how many context issues currently exist in Gutenberg. While this issue is not to fix those, I wanted to prevent adding another pain point. What I now understand is off canvas editing is not replacing editing in the canvas. It is just a secondary option for users. I think that makes a context problem much less of a big deal. Although it will still be up to us to keep track of focus and what not which will likely be no easy task. I guess I just do not understand the visual aspect of this. I was not trying to downplay it if it was a huge issue. It just kind of read to me at the time like visuals come first, off canvas editing for navigation block, no more canvas editing, we'll figure out accessibility one of these days. It makes a big difference with the understanding I have with intent. Maybe it was there all along and I just missed it. Thanks for putting up with my negative and sometimes, slightly positive views around accessibility. |
@alexstine @joedolson Thank you for your considered feedback. Very much appreciated.
That's exactly it. A complementary interface which will hopefully make it much easier for users to edit nested menus which can be very challenging to edit "in canvas" - especially for sighted users using a mouse.
No worries. I can see we have a lot of context issues that need to be addressed in the wider project. I for one would be happy to join you in to advocating for improvements in that area. For what it's worth I think sometimes contributors want to implement the correct UX but - even if they develop/test with a screen reader - struggle to know what that should be. If anyone who has first hand experience with that setup can help guide then changes will likely happen more quickly (in this feature at least).
Our basic understanding is focus should not leave the list view until the user actively choses to leave it. There will be micro decisions about how focus should be managed within the list view but we should iron those out.
Understood and thanks. It's a really big pain point so I'm glad we agreed it's important that it's addressed so long as it's not to the detriment of the experience for users of assistive tech.
No worries and you are welcome. We're all committed to improving the editor and your right to hold us to account if the experience we've produced is not up to scratch. In hindsight I feel that as contributors we should have conducted our own accessibility audit prior to requesting your input. We'll take learnings from that and try to do better next time. As you've probably seen we've got a load of PRs open (see PRs linked to the Issues in the description) many of which seem to have stalled due to contributors being unsure of the correct UX to implement for assistive tech. Any advice you are able to offer would be much appreciated. |
@getdave I have tried to reply and leave some feedback. I am not sure how to test right now because I am on business travel until January 29th. I generally build these branches on my Mac and my Windows environment takes forever with Node.JS. Really wish @youknowriad had that CodeSandbox fully working. 👍 I will do what I can with answering questions and reviewing code diffs. When I return, happy to record another video and give everyone clear visibility in to what can be improved or what looks perfect. Probably not the news you wanted but I recorded that video the night before I left. Hope I do not hold things up too much. Thanks. |
@alexstine No problem. I think the main help at this point would be answering questions on implementation details and UX. Hopefully they won't all require building branches on Node. I'll try and get contributors to leave a list of ongoing questions in a comment here to make it easier (cc @scruffian) |
Okay, I finally figured out an easier way for testing Gutenberg with WSL. I worked through a few PRs today and really enjoying the UX now. Once all outstanding PRs/issues are merged/closed, I would be happy to do another audit. I think we're in a much better position now. |
👋 @alexstine. Glad to hear you've found an easier way. That's great news! We would of course be grateful for any audit you could provide. The Issues I created from your previous audit have either been fixed or they have been identified to be a wider problem requiring work outside the immediate scope of the Nav block list view project (e.g. the "Close" button for popovers). Some items are still being worked on but it does no harm to get a fresh look at the current state and whether things have indeed improved as you suspect. |
Awesome. I will try to circle back on this during the weekend. Returned to ice and snow, trying to catch up on a lot here lately. Thanks. |
Okay, accessibility audit done. Overall, there are some great improvements but I still found some concerning bugs. Really happy with progress, lets keep it moving. Sorry about the fact that my screen reader sounds like I am in an echo chamber. Not sure what is up there. Thanks. video1723862502.mp4 |
Thank you @alexstine. We'll keep working at this. I'll dive in here shortly and check against existing bugs vs new bugs. |
Going through this now. |
Items from a11y review no.2Thanks to @alexstine for again taking time to review this work. Note: some of the issues Alex ran into have subsequently become known bugs and were making the experience unnecessarily confusing. TL;DRManaging focus is the major problem to work on. Most of the role and aria affordances are good but focus is very poor and is hampering the ability of users of assistive tech to use the feature IssuesThe following will be converted into Issues:
|
Now that the OffCanvasEditor is no longer used, we don't need this issue. Future improvements should happen to ListView. |
What problem does this address?
If we
make the OffCanvasEditor the default experience for the navigation blockremove the "experiment" wrapper from the Nav block offcanvas editor, we need to ensure that any accessibility concerns are addressed.What is your proposed solution?
Address all the Todos below.
We have this issue which has one proposal, but it would be good to raise more issues so we can address them ASAP.Todos
Update: additional issues have been identified as part of a follow up review.
The following Issues should be developed and tested using a screen reader:
Block inserter dialog has unexpected tab stop #47013Outside project scope.Block inserter lacking a clear close button #47016Outside project scope.Nav offcanvas - creating a menu from the block list view transfers focus back to canvas #47018Outside project scope.Nav block moving between auto menu and newly created menu lacks context #47019Outside project scope.Nav block lacks context about menu currently being edited within the block #47020Outside project scope.Name
of the Navigation Offcanvas List View #47022aria-posinset
for the appender #47024Context
The offcanvas editor repurposes the standard list view and displays it within the inspector controls sidebar for the Navigation block. Users are then able to create/edit nav menus using a customised list view tree interface.
The two calls for testing from Make Blog are available at:
cc @alexstine @tellthemachines @ndiego @afercia
The text was updated successfully, but these errors were encountered: