Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

https://github.com/cvs-health/android-compose-accessibility-techniques

Android sample code demonstrating a variety of accessibility best practices for Jetpack Compose-based UIs.
https://github.com/cvs-health/android-compose-accessibility-techniques

a11y accessibility android android-accessibility jetpack-compose

Last synced: 5 days ago
JSON representation

Android sample code demonstrating a variety of accessibility best practices for Jetpack Compose-based UIs.

Lists

README

        

# android-compose-accessibility-techniques

Demonstrates a variety of accessibility best practices for Android Jetpack Compose-based UIs, as well as the problems they can address.
Using the app will demonstrate the impact of accessibility best practices, and reviewing the app project source code will help you learn how to apply those techniques in working code.

See [android-compose-accessibility-techniques Architecture](ARCHITECTURE.md) for details of the app architecture and the project's file structure.

Since some of the code demonstrates the effect of inaccessible coding practices, the app itself does not fully conform to required accessibility guidelines.

## Topics
- Informative Content
- [x] [Text alternatives](doc/content/TextAlternatives.md)
- [x] [Accessibility traversal order](doc/content/AccessibilityTraversalOrder.md)
- [x] [Content grouping](doc/content/ContentGrouping.md)
- [x] [Content group replacement](doc/content/ContentGroupReplacement.md)
- [x] [Heading semantics](doc/content/HeadingSemantics.md)
- [x] [List semantics](doc/content/ListSemantics.md)
- [x] [Adaptive layouts](doc/content/AdaptiveLayouts.md)
- [x] [Dark and Light themes](doc/content/DarkAndLightThemes.md)
- [x] [Screen and pane titles](doc/content/ScreenAndPaneTitles.md)
- Interactive Behaviors
- [x] [Input field labels](doc/interactions/InteractiveControlLabels.md)
- [x] [UX change announcements](doc/interactions/UXChangeAnnouncements.md)
- [x] [Keyboard types and options](doc/interactions/KeyboardTypes.md)
- [x] [Keyboard actions](doc/interactions/KeyboardActions.md)
- [x] [Keyboard focus order](doc/interactions/KeyboardFocusOrder.md)
- [x] [Custom focus indicators](doc/interactions/CustomFocusIndicators.md)
- [x] [Custom click labels](doc/interactions/CustomClickLabels.md)
- [x] [Custom state descriptions](doc/interactions/CustomStateDescriptions.md)
- [x] [Custom accessibility actions](doc/interactions/CustomAccessibilityActions.md)
- Specific Component Types
- [x] [Accordion controls](doc/components/AccordionControls.md)
- [x] [Autofill controls](doc/components/AutofillControls.md)
- [x] [Checkbox controls](doc/components/CheckboxControls.md)
- [x] [Dropdown menus](doc/components/DropdownMenus.md)
- [x] [Exposed dropdown menus](doc/components/ExposedDropdownMenus.md)
- [x] [Links inline with text](doc/components/LinksInlineWithText.md)
- [x] [ListItem layouts](doc/components/ListItemLayouts.md)
- [x] [ModalBottomSheet layouts](doc/components/ModalBottomSheetLayouts.md)
- [x] [NavigationBar layouts](doc/components/NavigationBarLayouts.md)
- [x] [Pop-up messages (Toast, SnackBar, and AlertDialog controls)](doc/components/PopupMessages.md)
- [x] [RadioButton groups](doc/components/RadioButtonGroups.md)
- [x] [Slider and RangeSlider controls](doc/components/SliderAndRangeSliderControls.md)
- [x] [Stand-alone links](doc/components/StandAloneLinks.md)
- [x] [Switch controls](doc/components/SwitchControls.md)
- [x] [Tab rows](doc/components/TabRows.md)
- [x] [TextField controls](doc/components/TextFieldControls.md)

- Other
- [x] [Compose Semantics automated testing](doc/AutomatedComposeAccessibilityTesting.md)

## Screenshots
android-compose-accessibility-techniques app Home screen showing the three accessibility technique topic groups: Informative Content, Interactive Behaviors, and Specific Component Types. The Specific Component Types topic group is expanded and shows topics such as Accordion controls and Dropdown menus.
Interactive control labels screen showing bad and good examples of programmatically-associating text labels with TextField and CheckBox controls.

## Contributor Guide

1. Before contributing to this CVS Health sponsored project, you will need to sign the associated [Contributor License Agreement](https://forms.office.com/r/9e9VmE7qLW).
2. See the [contributing](CONTRIBUTING.md) page.

## License
android-compose-accessibility-techniques is licensed under under the Apache License, Version 2.0. See [LICENSE](LICENSE) file for more information.

Copyright 2023-2024 CVS Health and/or one of its affiliates

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

See the License for the specific language governing permissions and
limitations under the License.