-
Notifications
You must be signed in to change notification settings - Fork 344
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
Collect feedback on carousel pattern introduced in APG 1.1 Release 3 (January 2019) #970
Comments
Tab sequenceIssue: Behaviour is a result of implementation detailsKeyboard Interaction This leads to inconsistent behaviour between differing implementations of the sliding effect. Issue: Behaviour of carousels with multiple visible slides• Going back and forth between slides feels the more clunky, the more focusable slides you have. Imagine the provided example with 5 slides, each focusable. After having focused all 5 visible slides you need to go all the way back, threw those 5 slides to reach the next-slide-button again. Question: Why not a composite widgetsImplementing a carousel as a composite widget, which exists as a single navigation stop within the larger navigation system of the web page. and provide a separate navigation mechanism for users to navigate to elements that are descendants or owned children of the composite element. solves the issues. |
Question: "Grouped" keyboard interaction modelI'm trying to understand the divergence in the proposed "group" pattern from the functional behavior of tabs for the slide pickers to a native button implementation. It seems that the intended model for grouped is the convergence between the tabbed and basic implementation. Why the shift from treating these as tabs to then treating them as buttons?
Would the above still be true if the tabbed interaction model was implemented? I'm trying to understand the delta between the two implementations of the slide picker controls. The primary difference to the control seems to be the addition of rotation and next/previous controls though I'm not sure that requires a completely divergent keyboard interaction model. That seems problematic and confusing for both implementors and users. Are there concerns regarding navigation redundancy by exposing next/previous and individual buttons to fire content? A possible additional benefit of maintaining the tabbed interaction model is that the next/previous controls could be hidden from screen readers which would eliminate any concerns regarding duplicate navigation as the keyboard interaction model for tabs supports next/previous behavior. |
Issue: The Carousel Design Pattern Does Not Implement User Expected Methods of Pausing CarouselsDescriptionThe Carousel Design Pattern does not support pausing the carousel when the user manually changes the slide, which is historically the most common method for allowing users to pause carousel rotation. Recommended ChangeThe following requirement (or one to the same effect) should be added:
Why is this change important?Supporting standard methods for pausing animated content is critical for supporting 2.2.2 Pause, Stop, Hide for may users including users with ADHD and other impairments that impact attention and/or cognitive load. Users with ADHDI can best speak to users with ADHD. To understand why this support is critical, it’s helpful to have some understanding of how ADHD impacts attention. One of the ways it was explained to me when I was first diagnosed is that the ADHD brain gives pretty much all sensory input the same level of urgency. This means that animated web content such as a carousel or pop up notification can cause the same disruption and cognitive load as a more intense disruption. For me, this kind of animation can demand the roughly the same attention and cognitive resources as a fire alarm going off or someone saying my name loudly. For people who have more of an inattentive sub type of ADHD than I do, everything may seem equally unimportant, but this kind of animation will still cause them to lose focus on what they are working on, because they would not be able to screen it out the way a typical user could. This is not universally true of all stimulus for all people (some people with ADHD are more sensitive to sound rather than motion for instance) and can vary based on things like how much sleep a person has had, or how much additional cognitive load they are under. But, keeping in mind that any stimulus could have this level of disruption is the right stance to take when making design considerations, and automatically rotating carousels are a big pain point for me on the web. It’s also helpful to remember that 2.2.2 is explicitly mentioned in Conformance Requirement 5, because distracting animation can impact users’ ability to interact with elements on the whole page. This can include interacting with the controls to pause carousels themselves, making it difficult to figure out how a particular carousel can be turned off if it does not support standard methods. For myself, there have definitely been times where a page had a pause button, but did not pause when the slide was rotated by the user, and the slide rotation was so disruptive I could not find the pause button before needing to take a break from using the web site or application (Unlike controls for changing the slide, pause buttons are not styled consistently, have different levels of visibility, are rare, and are not consistently placed). In addition, the more time I spend looking for a method to pause a slide, the more cumulative cognitive load it adds, and spending 3 seconds vs. 10 seconds trying to pause a carousel can be the difference between whether or not I need to take a break and walk away from the computer after finally pausing it. In short, it’s critical that the first method I attempt to pause the carousel works, and given the state of carousels on the web, the first method I attempt will always be to manually rotate the slider. Other UsersIn addition, users with cognitive impairments that mean they need more time to read the current slide would also benefit from it being paused when they have explicitly chosen a specific slide to read. And it just makes sense for rotation to stop if a user has made an explicit chose to read a particular slide Additional Reasons to Support this ChangeIn addition to the user impacts outline above, supporting standard methods for pausing carousels makes sense because the ARIA Authoring Practices require standard interaction methods in many other design patterns. For instance, the Button and Checkbox patterns both require the standard keyboard interactivity. While those two examples are defined as part of the HTML spec, given that there is no existing widely adopted standard for carousels, we should instead default to user expectations. Why the Methods in the Design Pattern are not SufficientThe Design Pattern does require that the carousel stop rotating when the user hovers over it. However, unlike for when elements in the carousel receive keyboard focus, the Design Pattern does not require the rotation to remain paused when the mouse hover leaves the control.
I suppose that on desktop, I could hover over the carousel to pause it long enough to find the pause button. But I don’t think this is reliable as in the past I have had instances where finding the pause button would require scrolling the page or is still difficult to spot, and some implementations may require the user to move the mouse across space between the carousel slide and pause button, which could cause the rotation to resume before the button could be pressed. More importantly, this hover requirement does not support users on mobile devices. |
The use of In fact a Jaws bug makes it near impossible to interact with an element that has an aria-roledescription property (see my comment at the end of that thread). NVDA does not announce the I would recommend a certain baseline support for the attribute before the official APG pattern recommends its use, especially when there are bugs that make carousels near impossible to use if authored according to the pattern. |
Would love a version without auto rotateI really appreciate all the work that has been done on this example. Carousels have been an excruciating pain in my side for years. Feedback: I would really like to see an alternative version of the Carousel example that does not auto rotate at all and the play/pause button is removed. Also, I agree with @Wildebrew 's comment. I've seen little to no screen reader support for |
I'm writing in support of the comments by @jamesedjac ("Issue: The Carousel Design Pattern Does Not Implement User Expected Methods of Pausing Carousels") based on use of the Auto-Rotating Image Carousel Example, with some additional detail. My apologies if this is not the proper place for a member of the general public to leave feedback. When you click the next/previous button, the button gains focus, which pauses automatic rotation. If you switch to a second browser tab/window, focus moves to that tab/window -- meanwhile the carousel auto-advances in the background. If you return to the browser tab with the carousel, focus returns to the next/previous button that originally had focus, and the auto-rotation pauses again -- but at a different slide from where you originally left off, which is confusing. The expectation of the users who tested this was that auto-rotation would remain paused at the same slide while focus moved to a second tab/window and that the same slide would still be in situ when they came back to it in the original tab. |
Please have a look at the latest version in the editor's draft: Sorry we are so delayed getting the 1.2 version of APG on w3.org. |
Closing; feedback addressed in multiple updates now visible in editor's draft and scheduled for publication ion approximately November 15, 2021. |
Feedback Summary for the meeting agenda
The text was updated successfully, but these errors were encountered: