adobe / spectrum-web-components

Spectrum Web Components
https://opensource.adobe.com/spectrum-web-components/
Apache License 2.0
1.21k stars 192 forks source link

fix(swatch): sync `aria-label` with changes in label, color, and mixed … #4519

Closed Rocss closed 4 weeks ago

Rocss commented 1 month ago

…state

Right now sp-swatch has some accessibility bugs:

  1. For mixed state, there is an accessibility error thrown because of the use of aria-checked="mixed" on an element with role=button.
  2. On color change, the aria-label is not in sync with it and it has the old color value.

Description

Related issue(s)

Motivation and context

Screen reader accessibility

How has this been tested?

Screenshots (if appropriate)

Types of changes

Checklist

Best practices

This repository uses conventional commit syntax for each commit message; note that the GitHub UI does not use this by default so be cautious when accepting suggested changes. Avoid the "Update branch" button on the pull request and opt instead for rebasing your branch against main.

github-actions[bot] commented 1 month ago

Branch preview

Visual regression test results When a visual regression test fails (or has previously failed while working on this branch), its results can be found in the following URLs: - [High Contrast Mode | Medium | LTR](https://480ec887f63f88adbaf2ada41a30be28--spectrum-web-components.netlify.app/review/) - [Spectrum | Lightest | Medium | LTR](https://86d85ced1207f65d3c3b93761f0fdcb9--spectrum-web-components.netlify.app/review/) - [Spectrum | Lightest | Medium | RTL](https://e962df4427148e30a43ffce07fe5b27d--spectrum-web-components.netlify.app/review/) - [Spectrum | Lightest | Large | LTR](https://c709bfbd9ae38b779ab9f2ee38848de6--spectrum-web-components.netlify.app/review/) - [Spectrum | Lightest | Large | RTL](https://b272db78cbeec31ae75f639715cc6343--spectrum-web-components.netlify.app/review/) - [Spectrum | Light | Medium | LTR](https://6b75072d53caf393d1a6ab27e1659bac--spectrum-web-components.netlify.app/review/) - [Spectrum | Light | Medium | RTL](https://5ff4b0352a758ef8e09016eb56d048c7--spectrum-web-components.netlify.app/review/) - [Spectrum | Light | Large | LTR](https://a007140612c44416f0756436b0499eec--spectrum-web-components.netlify.app/review/) - [Spectrum | Light | Large | RTL](https://1cc2bfb3265d4a3b6d952d7eff218184--spectrum-web-components.netlify.app/review/) - [Spectrum | Dark | Medium | LTR](https://b2c5bc983e1c3f724ef607419c5979ae--spectrum-web-components.netlify.app/review/) - [Spectrum | Dark | Medium | RTL](https://695b28c690e054ecd82ea03de29a71aa--spectrum-web-components.netlify.app/review/) - [Spectrum | Dark | Large | LTR](https://e231bbf405b60d9f26874bcf144a04c7--spectrum-web-components.netlify.app/review/) - [Spectrum | Dark | Large | RTL](https://20213bc87bee0c056ca25b033be915ff--spectrum-web-components.netlify.app/review/) - [Spectrum | Darkest | Medium | LTR](https://3f0d2a97034af4d6e34af9649e675070--spectrum-web-components.netlify.app/review/) - [Spectrum | Darkest | Medium | RTL](https://50b171a7d485ee0cc6dea96d58cb0550--spectrum-web-components.netlify.app/review/) - [Spectrum | Darkest | Large | LTR](https://3a2157478cb6663da9fd3c3cc07bf917--spectrum-web-components.netlify.app/review/) - [Spectrum | Darkest | Large | RTL](https://61eda48fdf71146c17a8536deab96651--spectrum-web-components.netlify.app/review/) - [Express | Lightest | Medium | LTR](https://9299ac4e49c6ec6961357944496867da--spectrum-web-components.netlify.app/review/) - [Express | Lightest | Medium | RTL](https://ac238a9b70feea952debeaa28bad28af--spectrum-web-components.netlify.app/review/) - [Express | Lightest | Large | LTR](https://612f821ba69b2fdd0dfca85fd1be48b1--spectrum-web-components.netlify.app/review/) - [Express | Lightest | Large | RTL](https://70cf428ecdfbc7d989a9a7feaa44e216--spectrum-web-components.netlify.app/review/) - [Express | Light | Medium | LTR](https://ab85836b05b6df4922e07fccdfcec993--spectrum-web-components.netlify.app/review/) - [Express | Light | Medium | RTL](https://08026aaa0e25eff44914ea0c45dc1560--spectrum-web-components.netlify.app/review/) - [Express | Light | Large | LTR](https://228b856e7d372fcadca96eb18811ba41--spectrum-web-components.netlify.app/review/) - [Express | Light | Large | RTL](https://ad9108f207c29dae79d3beb88d2ca58a--spectrum-web-components.netlify.app/review/) - [Express | Dark | Medium | LTR](https://069303df48f51fd9c13b8f76a544edc9--spectrum-web-components.netlify.app/review/) - [Express | Dark | Medium | RTL](https://977fd3fdc5090944f5c96afa707cda18--spectrum-web-components.netlify.app/review/) - [Express | Dark | Large | LTR](https://e9bf317d5d362a836c05f3f9ce4871e1--spectrum-web-components.netlify.app/review/) - [Express | Dark | Large | RTL](https://9655eaafa25cce83d2bdf82fdf580c1b--spectrum-web-components.netlify.app/review/) - [Express | Darkest | Medium | LTR](https://095f77fb007445d27e38ed9203221f4b--spectrum-web-components.netlify.app/review/) - [Express | Darkest | Medium | RTL](https://460993058a90f806df11d289d2685519--spectrum-web-components.netlify.app/review/) - [Express | Darkest | Large | LTR](https://6533541029ffc37d13ab69ffebc4f707--spectrum-web-components.netlify.app/review/) - [Express | Darkest | Large | RTL](https://4a9487f8fc4fc7a4dbb44380a2c28608--spectrum-web-components.netlify.app/review/) - [Spectrum-two | Light | Medium | LTR](https://ca54f40da4b470375ac2c05dba4faa7c--spectrum-web-components.netlify.app/review/) - [Spectrum-two | Light | Medium | RTL](https://7f7435fad8c0ce183a1dab798f4222b6--spectrum-web-components.netlify.app/review/) - [Spectrum-two | Light | Large | LTR](https://bd6098386d5f94dd0a70e6545213b11e--spectrum-web-components.netlify.app/review/) - [Spectrum-two | Light | Large | RTL](https://d97e65652e734319a2af6b609aac129c--spectrum-web-components.netlify.app/review/) - [Spectrum-two | Dark | Medium | LTR](https://497c6eb724f1704f742f63ce5333b927--spectrum-web-components.netlify.app/review/) - [Spectrum-two | Dark | Medium | RTL](https://2b1cc477603ef31e443b4ea6ce463e50--spectrum-web-components.netlify.app/review/) - [Spectrum-two | Dark | Large | LTR](https://cabd6d8ab73e0a7af66da33a1d0058eb--spectrum-web-components.netlify.app/review/) - [Spectrum-two | Dark | Large | RTL](https://3d597e79f7c08fa3624ffb8606ab2fe2--spectrum-web-components.netlify.app/review/)
github-actions[bot] commented 1 month ago

Lighthouse scores

Category Latest (report) Main (report) Branch (report)
Performance 0.99 0.99 0.99
Accessibility 1 1 1
Best Practices 1 1 1
SEO 1 0.92 0.92
PWA 1 1 1
What is this? [Lighthouse](https://github.com/GoogleChrome/lighthouse) scores comparing the documentation site built from the PR ("Branch") to that of the production documentation site ("Latest") and the build currently on main ("Main"). Higher scores are better, but *note that the SEO scores on Netlify URLs are artifically constrained to 0.92.*

Transfer Size

Category Latest Main Branch
Total 222.529 kB 210.913 kB 210.825 kB 🏆
Scripts 54.712 kB 48.571 kB 48.424 kB 🏆
Stylesheet 34.914 kB 30.434 kB 🏆 30.48 kB
Document 5.998 kB 5.267 kB 5.266 kB 🏆
Font 126.905 kB 126.641 kB 🏆 126.655 kB

Request Count

Category Latest Main Branch
Total 45 45 45
Scripts 37 37 37
Stylesheet 5 5 5
Document 1 1 1
Font 2 2 2
github-actions[bot] commented 1 month ago

Tachometer results

Chrome ## swatch [_permalink_](#user-content-swatch) ### basic-test | Version | Bytes | Avg Time | vs remote | vs branch | |---|---|---|---|---| | npm latest | 407 kB | 13.43ms - 13.68ms | - | faster ✔
9% - 13%
1.31ms - 1.95ms | | branch | 395 kB | 14.90ms - 15.48ms | slower ❌
10% - 14%
1.31ms - 1.95ms | - |
Firefox ## swatch [_permalink_](#user-content-swatch) ### basic-test | Version | Bytes | Avg Time | vs remote | vs branch | |---|---|---|---|---| | npm latest | 407 kB | 33.12ms - 36.32ms | - | unsure 🔍
-9% - +4%
-3.13ms - +1.33ms | | branch | 395 kB | 34.07ms - 37.17ms | unsure 🔍
-4% - +9%
-1.33ms - +3.13ms | - |