@brightspace-ui/core 3.50.1 → 3.51.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -41,12 +41,12 @@ The `<d2l-input-number>` element is similar to `<d2l-input-text>`, except it's i
41
41
 
42
42
  | Property | Type | Description |
43
43
  |---|---|---|
44
- | `label` | String, required | Label for the input. |
44
+ | `label` | String, required | Explicitly defined label for the element. |
45
45
  | `autocomplete` | String | Specifies which types of values [can be autofilled](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete) by the browser. |
46
46
  | `autofocus` | Boolean, default: `false` | When set, will automatically place focus on the input. |
47
47
  | `disabled` | Boolean, default: `false` | Disables the input. |
48
48
  | `input-width` | String, default: `4rem` | Restricts the maximum width of the input box without impacting the width of the label. |
49
- | `label-hidden` | Boolean, default: `false` | Hides the label visually (moves it to the input's `aria-label` attribute). |
49
+ | `label-hidden` | Boolean, default: `false` | Hides the label visually. Hidden labels are still read by screen readers so make sure to set an appropriate label. |
50
50
  | `labelled-by` | String | HTML id of an element in the same shadow root which acts as the input's label |
51
51
  | `max` | Number | Maximum value allowed. |
52
52
  | `max-exclusive` | Boolean, default: `false` | Indicates whether the max value is exclusive. |
@@ -56,6 +56,7 @@ The `<d2l-input-number>` element is similar to `<d2l-input-text>`, except it's i
56
56
  | `min-fraction-digits` | Number, default: `0` | Minimum number of digits allowed after the decimal place. Must be between 0 and 20 and less than or equal to `maxFractionDigits` |
57
57
  | `required` | Boolean, default: `false` | Indicates that a value is required. |
58
58
  | `unit` | String | Unit associated with the input value, displayed next to input and announced as part of the label |
59
+ | `unit-label` | String | Label for the unit, which is only picked up by screenreaders. Required if `unit` is used. |
59
60
  | `value` | Number | Value of the input. |
60
61
 
61
62
  ### Events
@@ -74,17 +75,6 @@ numberInput.addEventListener('change', (e) => {
74
75
  * `inline-help`: Help text that will appear below the input. Use this only when other helpful cues are not sufficient, such as a carefully-worded label.
75
76
  <!-- docs: end hidden content -->
76
77
 
77
- ### Accessibility Properties
78
-
79
- To make your usage of `d2l-input-number` accessible, use the following properties when applicable:
80
-
81
- | Attribute | Description |
82
- |---|---|
83
- | `label` | **REQUIRED.** [Acts as a primary label on the input](https://www.w3.org/WAI/tutorials/forms/labels/). Visible unless `label-hidden` is also used. |
84
- | `label-hidden` | Use if label should be visually hidden but available for screen reader users. |
85
- | `labelled-by` | Use when another visible element should act as the label |
86
- | `unit` | Use to render the unit (offscreen) as part of the label. |
87
-
88
78
  ### Usage
89
79
 
90
80
  **Integers Only:**
@@ -120,11 +110,11 @@ The `<d2l-input-percent>` element is similar to `<d2l-input-number>`, except it
120
110
 
121
111
  | Property | Type | Description |
122
112
  |---|---|---|
123
- | `label` | String, required | Label for the input. |
113
+ | `label` | String, required | Explicitly defined label for the element. |
124
114
  | `autofocus` | Boolean, default: `false` | When set, will automatically place focus on the input. |
125
115
  | `disabled` | Boolean, default: `false` | Disables the input. |
126
116
  | `input-width` | String, default: `4rem` | Restricts the maximum width of the input box without impacting the width of the label. |
127
- | `label-hidden` | Boolean, default: `false` | Hides the label visually (moves it to the input's `aria-label` attribute). |
117
+ | `label-hidden` | Boolean, default: `false` | Hides the label visually. Hidden labels are still read by screen readers so make sure to set an appropriate label. |
128
118
  | `max-fraction-digits` | Number | Maximum number of digits allowed after the decimal place. |
129
119
  | `min-fraction-digits` | Number | Minimum number of digits allowed after the decimal place. |
130
120
  | `required` | Boolean, default: `false` | Indicates that a value is required. |
@@ -146,11 +136,10 @@ numberInput.addEventListener('change', (e) => {
146
136
  * `inline-help`: Help text that will appear below the input. Use this only when other helpful cues are not sufficient, such as a carefully-worded label.
147
137
  <!-- docs: end hidden content -->
148
138
 
149
- ### Accessibility Properties
150
-
151
- To make your usage of `d2l-input-percent` accessible, use the following properties when applicable:
152
-
153
- | Attribute | Description |
154
- |---|---|
155
- | `label` | **REQUIRED.** [Acts as a primary label on the input](https://www.w3.org/WAI/tutorials/forms/labels/). Visible unless `label-hidden` is also used. |
156
- | `label-hidden` | Use if label should be visually hidden but available for screen reader users. |
139
+ ## Accessibility
140
+ - While `unit-label` is not mandatory by default, using the `unit` property makes it a required property
141
+ - This helps provide screenreaders more context and lets you use short forms for `unit` without risking it being unclear to screenreaders (e.g. `unit` is 'lbs', but `unit-label` is 'in pounds' )
142
+ - Despite being a lighter colour than the input text, the `unit` text still meets the [WCAG Minimum Contrast](https://www.w3.org/WAI/WCAG21/Understanding/contrast-minimum.html) requirement of 4.5:1
143
+ - Neither input component uses the `type="number"` to denote their numerical nature, so the `label` must make it clear that numerical input is expected
144
+ - This is because `type="number"` does not take into consideration localizations, which can cause problems for languages that use a comma as the decimal place instead of a period
145
+ - Using `unit-label` can greatly help with making the numerical nature of the input explicit
@@ -107,7 +107,7 @@ class InputNumber extends FocusMixin(LabelledMixin(SkeletonMixin(FormElementMixi
107
107
  */
108
108
  inputWidth: { attribute: 'input-width', type: String },
109
109
  /**
110
- * Hides the label visually (moves it to the input's `aria-label` attribute)
110
+ * Hides the label visually. Hidden labels are still read by screen readers so make sure to set an appropriate label.
111
111
  * @type {boolean}
112
112
  */
113
113
  labelHidden: { type: Boolean, attribute: 'label-hidden' },
@@ -160,7 +160,7 @@ class InputNumber extends FocusMixin(LabelledMixin(SkeletonMixin(FormElementMixi
160
160
  */
161
161
  unit: { type: String },
162
162
  /**
163
- * Accessible label for the unit which will not be visually rendered
163
+ * ACCESSIBILITY: Label for the unit, which is only picked up by screenreaders. Required if `unit` is used.
164
164
  * @type {string}
165
165
  */
166
166
  unitLabel: { attribute: 'unit-label', type: String },
@@ -34,7 +34,7 @@ class InputPercent extends FocusMixin(LabelledMixin(SkeletonMixin(FormElementMix
34
34
  */
35
35
  inputWidth: { attribute: 'input-width', type: String },
36
36
  /**
37
- * Hides the label visually (moves it to the input's "aria-label" attribute)
37
+ * Hides the label visually. Hidden labels are still read by screen readers so make sure to set an appropriate label.
38
38
  * @type {boolean}
39
39
  */
40
40
  labelHidden: { type: Boolean, attribute: 'label-hidden' },
@@ -6239,7 +6239,7 @@
6239
6239
  },
6240
6240
  {
6241
6241
  "name": "unit-label",
6242
- "description": "Accessible label for the unit which will not be visually rendered",
6242
+ "description": "ACCESSIBILITY: Label for the unit, which is only picked up by screenreaders. Required if `unit` is used.",
6243
6243
  "type": "string"
6244
6244
  },
6245
6245
  {
@@ -6271,7 +6271,7 @@
6271
6271
  },
6272
6272
  {
6273
6273
  "name": "label-hidden",
6274
- "description": "Hides the label visually (moves it to the input's `aria-label` attribute)",
6274
+ "description": "Hides the label visually. Hidden labels are still read by screen readers so make sure to set an appropriate label.",
6275
6275
  "type": "boolean",
6276
6276
  "default": "false"
6277
6277
  },
@@ -6354,7 +6354,7 @@
6354
6354
  {
6355
6355
  "name": "unitLabel",
6356
6356
  "attribute": "unit-label",
6357
- "description": "Accessible label for the unit which will not be visually rendered",
6357
+ "description": "ACCESSIBILITY: Label for the unit, which is only picked up by screenreaders. Required if `unit` is used.",
6358
6358
  "type": "string"
6359
6359
  },
6360
6360
  {
@@ -6405,7 +6405,7 @@
6405
6405
  {
6406
6406
  "name": "labelHidden",
6407
6407
  "attribute": "label-hidden",
6408
- "description": "Hides the label visually (moves it to the input's `aria-label` attribute)",
6408
+ "description": "Hides the label visually. Hidden labels are still read by screen readers so make sure to set an appropriate label.",
6409
6409
  "type": "boolean",
6410
6410
  "default": "false"
6411
6411
  },
@@ -6525,7 +6525,7 @@
6525
6525
  },
6526
6526
  {
6527
6527
  "name": "label-hidden",
6528
- "description": "Hides the label visually (moves it to the input's \"aria-label\" attribute)",
6528
+ "description": "Hides the label visually. Hidden labels are still read by screen readers so make sure to set an appropriate label.",
6529
6529
  "type": "boolean",
6530
6530
  "default": "false"
6531
6531
  },
@@ -6596,7 +6596,7 @@
6596
6596
  {
6597
6597
  "name": "labelHidden",
6598
6598
  "attribute": "label-hidden",
6599
- "description": "Hides the label visually (moves it to the input's \"aria-label\" attribute)",
6599
+ "description": "Hides the label visually. Hidden labels are still read by screen readers so make sure to set an appropriate label.",
6600
6600
  "type": "boolean",
6601
6601
  "default": "false"
6602
6602
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@brightspace-ui/core",
3
- "version": "3.50.1",
3
+ "version": "3.51.0",
4
4
  "description": "A collection of accessible, free, open-source web components for building Brightspace applications",
5
5
  "type": "module",
6
6
  "repository": "https://github.com/BrightspaceUI/core.git",