Skip to content

Commit fcd70ad

Browse files
authored
docs(meter): updated docs for accessibility (#5484)
* docs(meter): update meter docs accessbility * docs(meter): update meter docs accessbility
1 parent 8d6d957 commit fcd70ad

File tree

1 file changed

+73
-19
lines changed

1 file changed

+73
-19
lines changed

packages/meter/README.md

Lines changed: 73 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,86 +1,119 @@
1-
## Description
1+
## Overview
22

33
An `<sp-meter>` is a visual representation of a quantity or achievement. The meter's progress is determined by user actions, rather than system actions.
44

5-
### Installation
5+
### Usage
66

77
[![See it on NPM!](https://img.shields.io/npm/v/@spectrum-web-components/meter?style=for-the-badge)](https://www.npmjs.com/package/@spectrum-web-components/meter)
88
[![How big is this package in your project?](https://img.shields.io/bundlephobia/minzip/@spectrum-web-components/meter?style=for-the-badge)](https://bundlephobia.com/result?p=@spectrum-web-components/meter)
99
[![Try it on webcomponents.dev](https://img.shields.io/badge/Try%20it%20on-webcomponents.dev-green?style=for-the-badge)](https://webcomponents.dev/edit/collection/fO75441E1Q5ZlI0e9pgq/NqxNiDV1LXR9zxzocoRh/src/index.ts)
1010

11-
```
11+
```bash
1212
yarn add @spectrum-web-components/meter
1313
```
1414

1515
Import the side-effectful registration of `<sp-meter>` via:
1616

17-
```
17+
```javascript
1818
import '@spectrum-web-components/meter/sp-meter.js';
1919
```
2020

2121
When looking to leverage the `Meter` base class as a type and/or for extension purposes, do so via:
2222

23-
```
23+
```javascript
2424
import { Meter } from '@spectrum-web-components/meter';
2525
```
2626

27-
## Sizes
27+
### Anatomy
28+
29+
The meter consists of several key parts:
30+
31+
- A label that describes what is being measured
32+
- A progress track showing the total possible range
33+
- A fill bar indicating the current progress
34+
- A percentage value showing the numeric progress
35+
36+
```html
37+
<sp-meter progress="71">Tasks Completed</sp-meter>
38+
```
39+
40+
#### Label
41+
42+
The label is the text that describes what is being measured. It can be provided either through the default slot or the `label` attribute.
43+
44+
```html
45+
<sp-meter progress="15">Course Progress</sp-meter>
46+
<br />
47+
<sp-meter progress="15" label="Course Progress"></sp-meter>
48+
```
49+
50+
### Options
51+
52+
#### Sizes
2853

2954
<sp-tabs selected="m" auto label="Size Attribute Options">
3055
<sp-tab value="s">Small</sp-tab>
3156
<sp-tab-panel value="s">
3257

3358
```html
34-
<sp-meter size="s" progress="71">Tasks Completed</sp-meter>
59+
<sp-meter size="s" progress="25">Tasks Completed</sp-meter>
3560
```
3661

3762
</sp-tab-panel>
3863
<sp-tab value="m">Medium</sp-tab>
3964
<sp-tab-panel value="m">
4065

4166
```html
42-
<sp-meter size="m" progress="71">Tasks Completed</sp-meter>
67+
<sp-meter size="m" progress="25">Tasks Completed</sp-meter>
4368
```
4469

4570
</sp-tab-panel>
4671
<sp-tab value="l">Large</sp-tab>
4772
<sp-tab-panel value="l">
4873

4974
```html
50-
<sp-meter size="l" progress="71">Tasks Completed</sp-meter>
75+
<sp-meter size="l" progress="25">Tasks Completed</sp-meter>
5176
```
5277

5378
</sp-tab-panel>
5479
<sp-tab value="xl">Extra Large</sp-tab>
5580
<sp-tab-panel value="xl">
5681

5782
```html
58-
<sp-meter size="xl" progress="71">Tasks Completed</sp-meter>
83+
<sp-meter size="xl" progress="25">Tasks Completed</sp-meter>
5984
```
6085

6186
</sp-tab-panel>
6287
</sp-tabs>
6388

64-
## Variants
89+
#### Variants
90+
91+
The meter supports several variants to convey different semantic meanings:
6592

66-
### Informative
93+
<sp-tabs selected="informative" auto label="Variant Options">
94+
<sp-tab value="informative">Informative</sp-tab>
95+
<sp-tab-panel value="informative">
6796

6897
By default, the informative variant can be used to represent a neutral or non-semantic value, such as the number of tutorials completed.
6998

7099
```html
71100
<sp-meter progress="50">Storage Space</sp-meter>
72101
```
73102

74-
### Positive
103+
</sp-tab-panel>
104+
<sp-tab value="positive">Positive</sp-tab>
105+
<sp-tab-panel value="positive">
75106

76-
The positive variant can be used to represent a positive semantic value, such as when theres a lot of space remaining.
107+
The positive variant can be used to represent a positive semantic value, such as when there's a lot of space remaining.
77108
Use value `variant="positive"` to define a positive variant.
78109

79110
```html
80111
<sp-meter variant="positive" progress="50">Storage Space</sp-meter>
81112
```
82113

83-
### Notice
114+
</sp-tab-panel>
115+
<sp-tab value="notice">Notice</sp-tab>
116+
<sp-tab-panel value="notice">
84117

85118
The notice variant can be used to warn users about a situation that may need to be addressed soon, such as when space remaining is becoming limited.
86119
Use value `variant="notice"` to define a notice variant.
@@ -89,7 +122,9 @@ Use value `variant="notice"` to define a notice variant.
89122
<sp-meter variant="notice" progress="73">Storage Space</sp-meter>
90123
```
91124

92-
### Negative
125+
</sp-tab-panel>
126+
<sp-tab value="negative">Negative</sp-tab>
127+
<sp-tab-panel value="negative">
93128

94129
The negative variant can be used to warn users about a critical situation that needs their urgent attention, such as when space remaining is becoming very limited.
95130
Use value `variant="negative"` to define a negative variant.
@@ -98,10 +133,29 @@ Use value `variant="negative"` to define a negative variant.
98133
<sp-meter variant="negative" progress="92">Storage Space</sp-meter>
99134
```
100135

101-
### Side Label
136+
</sp-tab-panel>
137+
</sp-tabs>
138+
139+
#### Label Position
102140

103-
A meter can be delivered with its labeling displayed above its visual indicator or to either side. Use the boolean `[side-label]` attribute to define where this content should appear.
141+
A meter can be delivered with its labeling displayed above its visual indicator or to either side. Use the boolean `side-label` attribute to define where this content should appear.
104142

105143
```html
106-
<sp-meter side-label>Side Label</sp-meter>
144+
<sp-meter side-label progress="68">Side Label</sp-meter>
107145
```
146+
147+
### Accessibility
148+
149+
The `<sp-meter>` element is rendered with `role="meter progressbar"` to ensure proper semantics for assistive technologies. The current progress value is set as a percentager via the `progress` attribute and is exposed to assistive technology via `aria-valuenow`.
150+
151+
```html
152+
<sp-meter progress="71" label="Download Progress">Download Progress</sp-meter>
153+
```
154+
155+
#### Include a label
156+
157+
A meter is required to have either a visible text label or a `label` attribute.
158+
159+
#### Don't override color
160+
161+
The meter's variants provide semantic meaning through both color and ARIA attributes, ensuring that information is not conveyed through color alone. The progress track and fill maintain sufficient contrast for visibility.

0 commit comments

Comments
 (0)