Comments (2)
https://developer.mozilla.org/en-US/docs/Web/Accessibility/Keyboard-navigable_JavaScript_widgets
http://www.oaa-accessibility.org/example/40/
It's one thing to prevent "traps", and another to have a reasonable strategy for this. Screen-readers will tend to tab through the DOM rather than through meaningful regions of the UI (which has been hacked into existence out of DOM elements). We should develop a comprehensive strategy for navigating with the keyboard that works for users who need accessibility features and "power users".
I would recommend using tab to focus an object, and enter to "go into" that object. You can always "get out" of the current context by pressing escape. Example: Mirador loads with two windows open. By default the user is in the "viewer context". Tabbing therefore cycles through the buttons of the viewer, and over the workspace area. Having focused the workspace by tabbing, the user may now "enter" it by pressing "enter". Tabbing now focuses the windows of the workspace. "Entering" a window causes tab to cycle over the controls of the window, etc. To get back out to the viewer, press escape twice. This "releases" the user into the workspace context, and then "releases" them into the viewer context.
Without some comprehensive strategy of this kind, the user will simply tab through the hundreds of DOM elements that make up the application's interface, going from higher-level constructs like a window to the smallest button in no logical order except which one is first in the DOM.
It may also be nice (for power users) to have lettered commands that apply to the given context ("A" for annotations if the window's image view context is focused, "s" for "save annotation" if saving an annotation, etc.). Some libraries that can help with this are mousetrap.js.
from mirador.
There is some good information here, but I think the project has moved on with Mirador 3. Closing this issue now.
from mirador.
Related Issues (20)
- Rewrite Enzyme tests with react-testing-library: Workspace-adjacent tests HOT 1
- Rewrite Enzyme tests with react-testing-library: Lower-level component tests
- Rewrite Enzyme tests with react-testing-library: Other
- Fix annotations integration tests
- Rewrite tricky Enzyme tests using RTL
- Choice in Mirador 3 does not display as expected and breaks from previous Mirador versions HOT 4
- Warning: React does not recognize the `nodeId` prop on a DOM element.
- Fix or suppress OSD test warnings
- MUI 5.x: overlap="rectangle" was deprecated
- Focused windows don't float to the front in elastic mode on mobile devices
- Fix MiradorViewer plugin warnings in tests
- Fix icon css rule in `ErrorContent`
- Implementing placeholderCanvas
- Thumbnails not loading as expected HOT 3
- Assistance request install mirador-textoverlay HOT 3
- Manifest Drag & Drop failing HOT 3
- Mirador Demo manifest from YCBA no longer works HOT 5
- Change side of the SideBar HOT 6
- The "rendering" property of a canvas is not displayed HOT 3
- Unhandled rejection for blocked or unfound images
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mirador.