-
Notifications
You must be signed in to change notification settings - Fork 21
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
chore(grants): add eslint-plugin-vuejs-accessibility and disable errors flagged #3634
Conversation
QA Summary
Test CoverageCoverage report for `packages/client`
Coverage report for `packages/server`
|
Terraform Summary
Hint: If "Terraform Format & Style" failed, run OutputValidation Output
Plan Summary
Pusher: @TylerHendrickson, Action: |
00897f2
to
8f4f747
Compare
0014b5b
to
4713d4c
Compare
4713d4c
to
a0ad3a8
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@lsr-explore Adding a few comments/considerations to the discussion. Thanks for putting this together!
|
||
### Negative Consequences <!-- optional --> | ||
|
||
- Some devs may not know how to fix accessibility issues in Vue.js applications, and this may cause some friction in development or result in a number of rules being disabled. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think it's likely that we could encounter this from time to time, although IMO that's certainly not a deal-breaker. That said, I'm wondering if we might be able to mitigate issues for newcomers by providing documentation – do you think there are any useful resource(s) that would be worth linking to from our docs/
directory, as a starting point?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If this was adopted, I would write up some introductory documentation. The package has some documentation, but their solution isn't always the most optimal for accessibility.
https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/click-events-have-key-events.html
There is a ton of resources - will need to look for something that would be not overwhelming.
I like your idea of creating issues if items need to be temporarily disabled, and we can use a common tag, so devs can see examples from the code.
I can also put together an introduction to Accessibility to be reviewed during onboarding.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That would be excellent – thank you!
|
||
[Changes are in this PR with the Decision Record - #3634](https://github.com/usdigitalresponse/usdr-gost/pull/3634/files) | ||
|
||
I can separate out the changes into separate PR if needed. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Assuming we end up adopting at least one of the recommended linters, I don't think it should be necessary to separate the code changes from this PR into a separate PR. However, I do think that we should make a plan to address the newly-introduced eslint-disable
directives, which might entail having individual issues (either per-file, or else something more aligned with perceived level of effort) along with a parent issue we can use to track burn-down progress.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sounds good. If this is adopted, I plan to work on addressing the issues. Before merging, I'll create tech debt tickets and add them to the disable lines. I agree with your suggestion of one ticket per page.
One of the findings - autofocus would need to be reviewed w/ UX as it would change the behavior of the application. I don't know if this behavior was added by devs or specified by UX.
Accessibility concerns
Automatically focusing a form control can confuse visually-impaired people using screen-reading technology and people with cognitive impairments. When autofocus is assigned, screen-readers "teleport" their user to the form control without warning them beforehand.Use careful consideration for accessibility when applying the autofocus attribute. Automatically focusing on a control can cause the page to scroll on load. The focus can also cause dynamic keyboards to display on some touch devices. While a screen reader will announce the label of the form control receiving focus, the screen reader will not announce anything before the label, and the sighted user on a small device will equally miss the context created by the preceding content.
label has for - I thought was an easy coding fix, but I ran into an conflict with the vue linter not allowing self closing elements - need to look into it a bit more
Key events and static interactions - This is generally fixed by using a semantic element - button, or link, but then the styles may need to be adjusted to match the current look and feel.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@lsr-explore I think this proposal is in a good place and we haven't received any other concerns/pushback from the rest of the team, so I think we can consider this "Accepted" and move on with the items discussed in the comments. Thanks again for putting this together!
|
||
### Negative Consequences <!-- optional --> | ||
|
||
- Some devs may not know how to fix accessibility issues in Vue.js applications, and this may cause some friction in development or result in a number of rules being disabled. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That would be excellent – thank you!
Note: If this is approved, I will create issues and update the disable comments w/ issue numbers before merging
Ticket #
Description
Part of a Design Record to add support for
eslint-plugin-vuejs-accessibility
Screenshots / Demo Video
Rules flagged
Testing
Automated and Unit Tests
Manual tests for Reviewer
Checklist