-
Notifications
You must be signed in to change notification settings - Fork 6
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
"Grab and Drag" interaction on mobile VoiceOver #536
Comments
This should be looked into with high priority as part of the mobile a11y work, and since it sounds like other sims may use this patterh for accessilbe drag and drop. |
Transfered to scenery-phet because it impacts the GrabDragInteraction implemented here. |
We've had at least one interview with a person using VoiceOver on an iOS device. The keyboard-accessible interaction for grabbing the Yellow Balloon in BASE was completely inaccessible to them. They were unable to figure out how to grab and drag the Yellow Balloon. The main reason from my perspective was because the instructions on how to grab the balloon were confusing and misleading. Not surprising, as the instructions are designed for a keyboard user. The participant double-tapped on the grab button, and then tried to swipe to move the balloon, thinking it was grabbed. However, the balloon was never fully grabbed (no dotted-grabbed focus highlight, and no alert about being grabbed). Current keyboard-centric instructionsGrab BASE's Balloons:
Grab Friction's Books:
Note that in the Friction sim, it is not very useful to release the book, so we don't bother explaining how to do that. Tabbing away releases it, so a release is quite natural upon trying something else. Grab GFL's Ruler? (draft)
Note that the ruler interaction is similar to BASE's balloon interaction, except that the ruler won't do anything interesting upon release, except possibly animate itself to it's original home position. Also in the case of the ruler, using the ruler to measure the distance between the spheres is an optional interaction whereas grabbing and dragging the balloon is essential to succeeding with the sim. Possible avenues to explore
BASE's Balloon
Friction's book
GFL's Ruler (draft)
|
First Steps:
The changes to the instructions would be delivered automatically based on device detection. |
Keep general Grab & Drag items (e.g., visual hints) in this issue and Ruler specific items in GFL regular repo. For example, Grab and Release rule is general and the Move or Jump grabbed ruler is not necessarily general. |
It looks like detection of iOS was updated to support latest version in phetsims/phet-core@91bb985, so we should be good to go for next steps here. Thanks @jonathanolson! |
Today @liquatics mentioned that it would be great to have a version of this ready for an interview on 10/23, so we will shoot to have an initial version ready by then. |
I just tried |
From grab/drag interaction meeting today, here are some elements that came out of discussion:
Where sim-specific, all of these should be applied to each sim that has this interaction; the current list is GFL, Friction, and BASE. I will make individual issues to design for each sim. The main priority is to update BASE help text to support #536 (comment). After that, these will be prototyped for GFL first, see phetsims/gravity-force-lab#141 for GFL implementation. |
Given the potential complexities and interaction nuances of grab and drag interactions in simulation, I do think it will be useful to have an option to create a label that does not contain the word "Grab". That said, I am willing to try the label "Grab {{Measure Distance Ruler}}". It's a bit longer than the "Measure Distance" and "Measure Distance Ruler", but it might still achieve my goal of making it clear why some someone would want to grab the ruler in that sim. I will continue working on the exact wording for the interaction and help text for GFL over in phetsims/gravity-force-lab#141 |
From meeting today with @terracoda and @zepumph:
|
I worked on this a while today and learned some new things about iOS VO.
So next I am going to try keeping the balloon as a |
This looks really reasonable. Good work. |
@jessegreenberg, I like your idea of sticking with button, but preventing the transformation to draggable. |
Discussion on 11/4/19: We agree that the proposal in #536 (comment) sounds good. Up next we want to make sure that this is working well. A few issues have been reported involving duplication of the aria-describedby text in BASE, incorrect appearances of the help text when using a desktop screen reader, and a flood of alerts. In the following comment we are going to outline the exact design specification so that we can reference it later. We also mentioned that we want to generalize these strings that provide interaction help text:
|
We expect the grab and drag interaction to behave like the following on iOS VoiceOver and Talkback:
|
…d keyboardHelpText api, phetsims/scenery-phet#536
…d keyboardHelpText api, phetsims/scenery-phet#536
In the above commits, I tried to refactor usages of the gesture help text so that there are less usages of |
This was because there was ISLCRulerNode specific code that was adding aria-describedby associations. I removed it in the above commits. I think the only thing left for this issue is:
Anything else @jessegreenberg @terracoda? |
@jessegreenberg and @zepumph, I thought of something new today. It may not be a good idea, but then it might be a good idea, so I just want to mention it. What if the created grabbed object's name/label actually included the word grabbed, and then "Grabbed." in the alert would not be needed. Code for the ruler might look like this: <div aria-roledescription=”movable” aria-label=”Grabbed Ruler” role=”application”>Grabbed Ruler</div> Which might sound like this: Code for a balloon might look like this: <div aria-roledescription=”movable” aria-label=”Grabbed Yellow Balloon” role=”application”>Grabbed Yellow Balloon</div> Which might sound like this: On some platforms, one get the
Any thoughts? Do you think it might make sense to name the object as a grabbed object, rather than saying it is grabbed in a response? Do you thin it worth a quick try? |
@jessegreenberg and @zepumph, my previous comment may only be relevant for keyboard interaction? I am not 100% sure about a11y gesture. |
@jessegreenberg and @zepumph, I verified BASE's mobile a11y over in phetsims/balloons-and-static-electricity#452 (comment) Mobile A11y gesture is working pretty god, but keyboard interaction no longer works. I will not test further until I hear from you folks. |
And I just took a quick pass with GFL gesture, then keyboard I won't test further until I am given the go ahead. I mostly wanted to bring myself up to speed on where we were at with Drag & Grab before our meeting. |
From the grab/drag meeting this morning with @terracoda and @jessegreenberg, we feel like all of the above design specifications have been implemented and much has been reviewed. From here we will look into specific sims, like GFL and BASE to review the specifics of each implmentation, and create new issues if needed to make any tweaks/bug fixes that may arise. Closing |
When trying to click the "Grab Balloon" button with mobile VO, the balloon is released right away. After discussing with @zepumph, we realized we aren't exactly sure what the difficulty is and why the balloon seems to be picked up and released immedately after clicking the "grab balloon"button.
The text was updated successfully, but these errors were encountered: