Add Accessibility support
Maintainers usually reply within 1 day
Assessment
This issue has not been assessed yet.
Description
Summary
Add baseline accessibility support so views expose meaningful labels, values, traits, and actions to assistive technologies on supported hosts.
Scope
- Complete public view modifiers for accessibility labels, values, hints, identifiers, hidden state, and traits.
- Support
.accessibilityElement(children:)with.ignore,.combine, and.containchild behavior. - Derive default accessibility information from
Text,Image,Label, and controls, including control roles and enabled state. - Expose accessibility elements and their geometry through supported host accessibility systems, and update them when view content, layout, or state changes.
- Connect default, named, and adjustable accessibility actions to their handlers, including disabled-state handling for controls.
- Add examples and focused coverage for semantics, grouping, hidden content, state updates, and accessibility activation.
Acceptance criteria
- Text and labeled controls expose the expected labels, values, and traits without explicit accessibility modifiers.
- Explicit accessibility modifiers update the exposed properties, and hidden content is excluded from accessibility navigation.
- Element grouping ignores, combines, or contains child elements as requested.
- Assistive technologies can navigate rendered elements and invoke their supported default, named, and adjustable actions.
- Accessibility activation invokes an enabled button's action once; a disabled button does not invoke its action.
- Changes to labels, values, enabled state, and layout are reflected in the host accessibility tree.
API reference
PRs
- AccessibilityCore: #1114
- Accessibility & AccessibilityModifier: #1117
- Hosting accessibility support
- Dominant language
- Swift
- Stars
- 2.5k
- Forks
- 84
- Avg merge
- 2h 10m
- Merged PRs (30d)
- 62
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from OpenSwiftUIProject/OpenSwiftUI
-
Add Gauge supportOpenarea: rendering area: view type: feature
Difficulty 4/5 3-5 days Newbie friendliness 42/100
OpenSwiftUIProject/OpenSwiftUI#1022 ·
Maintainers usually reply within 1 day
-
area: animation area: rendering contrib: help wanted impact: visual-diff type: bug
Difficulty 4/5 3-5 days Newbie friendliness 48/100
OpenSwiftUIProject/OpenSwiftUI#984 ·
Maintainers usually reply within 1 day
-
Add List supportOpenarea: layout area: rendering area: view type: feature
Difficulty 5/5 Over a week Newbie friendliness 28/100
OpenSwiftUIProject/OpenSwiftUI#919 ·
Maintainers usually reply within 1 day
-
area: layout area: rendering area: view type: feature
Difficulty 5/5 Over a week Newbie friendliness 35/100
OpenSwiftUIProject/OpenSwiftUI#918 · 1 comment ·
Maintainers usually reply within 1 day
-
area: compatibility area: view type: feature
Difficulty 5/5 Over a week Newbie friendliness 35/100
OpenSwiftUIProject/OpenSwiftUI#917 ·
Maintainers usually reply within 1 day
All issues in OpenSwiftUIProject/OpenSwiftUI
Similar issues
-
If a snippet replacement starts with a newline, it truncates the first parts of the replacement.Open
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 80/100
margelo/react-native-vision-camera#4216 ·
Maintainers usually reply within 4 days
-
documentation good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
compiler-explorer/compiler-explorer#9272 ·
Maintainers usually reply within 1 day
-
[Feature] 建议出下卸载方法Openenhancement
Difficulty 1/5 1-3 hours Newbie friendliness 66/100
Maintainers usually reply within 1 day