Skip to content

Commit baaeb17

Browse files
committed
fix: allow labels to be hidden but accessibile to screen readers
Signed-off-by: Akshat Patel <[email protected]>
1 parent b60e9c1 commit baaeb17

File tree

2 files changed

+17
-1
lines changed

2 files changed

+17
-1
lines changed

src/dropdown/dropdown.component.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,10 @@ import { hasScrollableParents } from "carbon-components-angular/utils";
5555
*ngIf="label"
5656
[for]="id"
5757
class="bx--label"
58-
[ngClass]="{'bx--label--disabled': disabled}">
58+
[ngClass]="{
59+
'bx--label--disabled': disabled,
60+
'bx--visually-hidden': hideLabel
61+
}">
5962
<ng-container *ngIf="!isTemplate(label)">{{label}}</ng-container>
6063
<ng-template *ngIf="isTemplate(label)" [ngTemplateOutlet]="label"></ng-template>
6164
</label>
@@ -176,6 +179,10 @@ export class Dropdown implements OnInit, AfterContentInit, AfterViewInit, OnDest
176179
* Label for the dropdown.
177180
*/
178181
@Input() label: string | TemplateRef<any>;
182+
/**
183+
* Hide label while keeping it available for screen readers
184+
*/
185+
@Input() hideLabel = false;
179186
/**
180187
* Sets the optional helper text.
181188
*/

src/dropdown/dropdown.stories.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ const getProps = (overrides = {}) => Object.assign({}, {
5858
warnText: text("Text for the warning", "This is a warning"),
5959
disabled: boolean("disabled", false),
6060
label: text("Label", "Dropdown label"),
61+
hideLabel: boolean("Hide label", false),
6162
helperText: text("Helper text", "Optional helper text."),
6263
items: object("items", [
6364
{ content: "one" },
@@ -84,6 +85,7 @@ const getProps = (overrides = {}) => Object.assign({}, {
8485
<div style="width: 300px">
8586
<ibm-dropdown
8687
[label]="label"
88+
[hideLabel]="hideLabel"
8789
[helperText]="helperText"
8890
[invalid]="invalid"
8991
[invalidText]="invalidText"
@@ -109,6 +111,7 @@ class ReactiveFormsStory implements OnInit {
109111

110112
@Input() items = [];
111113
@Input() label = "";
114+
@Input() hideLabel = false;
112115
@Input() helperText = "";
113116
@Input() invalid = false;
114117
@Input() invalidText = "";
@@ -192,6 +195,7 @@ storiesOf("Components|Dropdown", module)
192195
<div style="width: 300px">
193196
<ibm-dropdown
194197
[label]="label"
198+
[hideLabel]="hideLabel"
195199
[helperText]="helperText"
196200
[size]="size"
197201
[dropUp]="dropUp"
@@ -215,6 +219,7 @@ storiesOf("Components|Dropdown", module)
215219
<div style="width: 300px">
216220
<ibm-dropdown
217221
[label]="label"
222+
[hideLabel]="hideLabel"
218223
[helperText]="helperText"
219224
[size]="size"
220225
[dropUp]="dropUp"
@@ -241,6 +246,7 @@ storiesOf("Components|Dropdown", module)
241246
<ibm-dropdown
242247
type="multi"
243248
[label]="label"
249+
[hideLabel]="hideLabel"
244250
[helperText]="helperText"
245251
[size]="size"
246252
[dropUp]="dropUp"
@@ -272,6 +278,7 @@ storiesOf("Components|Dropdown", module)
272278
<div style="width: 300px">
273279
<ibm-dropdown
274280
[label]="label"
281+
[hideLabel]="hideLabel"
275282
[helperText]="helperText"
276283
[size]="size"
277284
[invalid]="invalid"
@@ -313,6 +320,7 @@ storiesOf("Components|Dropdown", module)
313320
-->
314321
<app-reactive-forms
315322
[label]="label"
323+
[hideLabel]="hideLabel"
316324
[helperText]="helperText"
317325
[invalid]="invalid"
318326
[invalidText]="invalidText"
@@ -346,6 +354,7 @@ storiesOf("Components|Dropdown", module)
346354
<div style="width: 300px">
347355
<ibm-dropdown
348356
[label]="label"
357+
[hideLabel]="hideLabel"
349358
[helperText]="helperText"
350359
[invalid]="invalid"
351360
[invalidText]="invalidText"

0 commit comments

Comments
 (0)