Skip to content
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

CRDCDH-633 Accessibility Audit & 508 Compliance #230

Merged
merged 15 commits into from
Dec 6, 2023
Merged

Conversation

amattu2
Copy link
Member

@amattu2 amattu2 commented Nov 30, 2023

Overview

This PR audits our frontend implementation for any accessibility or 508 issues and fixes them. The specific changes are detailed below.

This audit was partially supported by the chrome extensions:

Color Scheme Audit

“Start a Submission Request” button
color: #fff
background: #22A584

“View” submission request button
color: #156071
background: #74D9E7

Approved “Review Comments” submission request button
color: #0B7F99
background: #1976D2

“CRDC Submission Request” in “Submission History” dialog
color: #98A7C6
background: #2E4D7B

Questionnaire Switch (No / Yes toggle)
disabled color: #89A2A7 (The color thats shown when the option is not picked)
“Save” submission request button
color: #fff
background: #22A584

Data Submission “Data Upload” table headers
color: #fff
background: #5C8FA7

“No Data Found” message on tables (Questionnaire, Data Upload, Organizations, Users, ….)
color: #AAA
page backgrounds: #fff

Data Submission “Status” label (above the actual status)
color: #1D91AB
background: XXX (image)

“Data Submission Request” in “Data Submission History” dialog
color: #98A7C6
background: #2E4D7B

“User Profile” header text on User Profile
color: #fff
background: XXX (image)

“Cancel” button on Edit User page
color: #949494
background: transparent

“Add Organization” button on Manage Organizations
color: #fff
background: #22A584

“Edit Organization” header text on Organization Management
color: #fff
background: XXX (image)

“Cancel” button on Edit Organization page
color: #949494
background: transparent

Change Details (Specifics)

  • Add aXe HTML audit to DEV tiers
    • This audits the HTML output of our React App. It doesn't quite work with React Router, so you need to reload the page any time you navigate to a different URL in order for the audit to work
  • Add A11Y eslint rule
    • This does a very basic audit of our code for potential issues.
  • Add aXe Jest integration with basic coverage of core elements
    • Home page
    • Header
    • Footer
    • 404 Page
  • PageBanner did not provide a L1 heading
  • PageBanner did not use sequential headings
  • Page loader did not have a aria label
  • Gov. shutdown header did not have a unique label
  • Invalid aria-selected on ProgressBar link
  • Invalid h6 on StatusBar titles
  • User Name / Login was not contained in a UL
  • Copy Submission ID had no content and needed a label
  • Missing label relationships on User Profile
  • Page headings should not be empty (PageBanner)
  • Missing label relationships on Organization Edit
  • All footers rendered causing duplicate labels
  • TablePagination rows per page input missing label
  • Hidden checkboxes on sect. A/B missing labels
  • TextInput missing label relationship
  • Tooltip button does not have discernible txt
  • SwitchInput missing label relationship
  • SelectInput ProxySelect missing label relationship
  • DatePickerInput missing label relationship
  • FormGroupCheckbox proxy c-box missing label relationship
  • File Types table missing aria-labels on all fields
  • Data Submission metadata upload input missing aria-label
  • API Token Dialog copy token button missing label
  • API Token fake input missing label
  • User List filters missing aria-label relationships
  • User Edit missing aria-label relationships
  • Organization List filters missing aria-label relationships
  • Organization Edit missing aria-label relationships
  • Questionnaire ProgressBar used an invalid DOM structure (ul > a instead of ul > li > a)
  • Questionnaire ListView loader missing aria-label
  • Data Submissions ListView loader missing aria-label
  • Data Submissions Batch Table loader missing aria-label
  • Organization List View loader missing aria-label
  • User List View loader missing aria-label
  • Footer newsletter asterisk did not meet min contrast ratio
  • Questionnaire Section D Remove File Type button empty with no label
  • Fix all header sizes being rendered at the same time
  • Multiple header links with identical IDs

Related Ticket(s)

https://tracker.nci.nih.gov/browse/CRDCDH-633

Also includes a few simple compliance fixes
- PageBanner did not provide a L1 heading
- PageBanner did not use sequential headings
- Page loader did not have a aria label
- Gov. shutdown header did not have a unique label
- Invalid `aria-selected` on ProgressBar link
- Invalid `h6` on StatusBar titles
- User Name / Login was not contained in a UL
- Copy Submission ID had no content and needed a label
- Missing label relationships on User Profile
- Page headings should not be empty (PageBanner)
- Missing label relationships on Organization Edit
- All footers rendered causing duplicate labels
- TablePagination rows per page input missing label
- Hidden checkboxes on sect. A/B missing labels
- TextInput missing label relationship
- Tooltip button does not have discernible txt
- SwitchInput missing label relationship
- SelectInput ProxySelect missing label relationship
- DatePickerInput missing label relationship
- FormGroupCheckbox proxy c-box missing label relationship
- File Types table missing aria-labels on all fields
- Data Submission metadata upload input missing aria-label
- API Token Dialog copy token button missing label
- API Token fake input missing label
- User List filters missing aria-label relationships
- User Edit missing aria-label relationships
- Organization List filters missing aria-label relationships
- Organization Edit missing aria-label relationships
@amattu2 amattu2 added this to the MVP-2.1.0 (M3) milestone Nov 30, 2023
- Questionnaire ListView loader missing aria-label
- Data Submissions ListView loader missing aria-label
- Data Submissions Batch Table loader missing aria-label
- Organization List View loader missing aria-label
- User List View loader missing aria-label
- Footer newsletter asterisk did not meet min contrast ratio
- Questionnaire Section D Remove File Type button empty with no label
- Fix all header sizes being rendered at the same time
- Multiple header links with identical IDs
@amattu2 amattu2 added the 🚧 Do Not Merge This PR is not ready for merging label Nov 30, 2023
@amattu2 amattu2 marked this pull request as ready for review December 5, 2023 15:01
@amattu2
Copy link
Member Author

amattu2 commented Dec 5, 2023

Still need:

  • Updated color scheme
  • Massive DMN update

@amattu2 amattu2 removed the 🚧 Do Not Merge This PR is not ready for merging label Dec 5, 2023
Copy link
Collaborator

@Alejandro-Vega Alejandro-Vega left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please add missing @types/jest-axe dependency to avoid type issues. See https://www.npmjs.com/package/jest-axe

This also migrates other type dependencies to devDeps
Copy link
Collaborator

@Alejandro-Vega Alejandro-Vega left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@Alejandro-Vega Alejandro-Vega merged commit d659599 into mvp-2.1.0 Dec 6, 2023
1 check passed
@Alejandro-Vega Alejandro-Vega deleted the CRDCDH-633 branch December 6, 2023 19:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants