<!-- markdownlint-disable-file MD024 -->
<!-- markdownlint-disable-file MD025 -->
# Accessibility Projects: Studio
An initial list of potential accessibility projects for Opencast Studio. We already started working on this, but we do not guarantee that we fix all (or any really) of the listed issues.
Projects are in no particular order.
# Adding Keyboard Shortcuts to Opencast Studio
## Summary
Opencast Studio, especially the built-in editor, does not support any keyboard shortcuts at the moment.
## Goals
Add keyboard shortcuts to Opencast studio where it makes sense. This means first and foremost to the player on the editor view.
## Non Goals
Not all functions need keyboard shortcuts.
## Potential Risks
Relatively risk-free.
## Success Criteria
- Play/pause with keyboard shortcut possible
- Setting trim marks via keyboard possible
## Benefits/Rewards
- Improved accessibility in Opencast Studio
- Developers learn how to include keyboard shortcuts
# Dark Mode in Studio
## Summary
Glare sensitivity can be one type of visually impairment. This means that bright white surfaces can cause problems for users. This can be particular bad if users have to switch between dark and bright interfaces.
To prevent this, it would be great for Opencast Studio to have a dark mode. Even better would it be if the mode would automatically be triggered by a user's system being in dark mode.
## Goals
- Implement dark mode in Studio
- Users should be able to enable the mode in the settings
- By default, it should be set to `auto` to respect the user's system settings if possible
- Studio should remember the user's settings
## Non Goals
- No custom designs
## Potential Risks
- Low risk
## Success Criteria
- A dark mode should be selectable on all systems
## Benefits/Rewards
- Learn about detecting system dark mode
- Better supporting visually impaired users
## Notes
- We can likely extend these pull request:
- https://github.com/elan-ev/opencast-studio/pull/902
- https://github.com/elan-ev/opencast-studio/pull/909
# Tab Navigation in Opencast Studio
## Summary
Right now, a lot of elements can only be reached via the mouse in Opencast Studio. Tabbing through active elements and activating them via keyboard should be possible.
Additionally, sensible `title` and `aria-label` attributes should be used in the user interface.
## Goals
- Make sure main components can be reached via tab key
- Make sure active elements are visually distinguishable
- Make sure elements can be activated via keyboard
- Make sure we have sensible attributes
## Non Goals
- No full accessibility analysis
- No keyboard shortcuts
## Potential Risks
Low risk
## Success Criteria
A user can create a full recording with no mouse.
## Benefits/Rewards
Accessibility improvement for motor impaired people and for visually impaired people using screen reader.
# Accessible Tooltips in Opencast Studio
## Summary
Toooltips (e.g. HTML `title` attributes) are great to add additioonal explanations to control elements. They are – in combination with `aria-label` – also picked up by some accessibility tools to help users further.
But non-persistent tooltips can unfortunately hinder accessibility. Users relying on screen magnification tool may be unable too read the whole tooltip since only part of the actual screen is visible.
For example, here is screen magnification being used with default `title` attributes vs using [tippy.js](https://atomiks.github.io/tippyjs/) for rendering [in the Opencast documentation](https://github.com/opencast/opencast/pull/3512):
- [accessible-tooltips.mp4](https://data.lkiesow.io/opencast/accessible-tooltips.mp4)
## Goals
- Use tippy.js to render persistent toooltips
- Make them adhere to the default theme
## Non Goals
- Not changing any tooltip textx and/or evaluating their usefullyness
- No design evaluatioon for how they should look exactly
## Potential Risks
- Low risk
## Success Criteria
- Studio renders tooltips similar to Opencast's documentation
## Benefits/Rewards
- Improved accessibility
- Improved look and feel
# Research good tool independent keyboard shortcuts
## Summary
We have several tools with similar functionality which already support keyboard shortcuts or should support them in the future. We should make sure to not use different shortcuts for the same function.
## Goals
Research and define a set of ideally well established of keyboard shortcuts for common functionality (play/pause, seek, search, …) we can then implement across different tools.
## Non Goals
Not actually implementing any shortcuts anywhere.
## Potential Risks
None.
## Success Criteria
A set of at least 10 commonly used shortcuts for web-based media tools.
## Benefits/Rewards
It's less confusing for users if they do not have to re-learn shortcuts with every tool they use.