Skip to content

Commit 1e4ad05

Browse files
committed
docs: hide placeholder select options from assistive tech
Add aria-hidden="true" to default placeholder options in form docs so screen readers do not vocalize hint text when focus enters a select. Fixes #37614
1 parent b8932a1 commit 1e4ad05

8 files changed

Lines changed: 47 additions & 47 deletions

File tree

js/tests/visual/floating-label.html

Lines changed: 18 additions & 18 deletions
Large diffs are not rendered by default.

site/src/assets/examples/cheatsheet-rtl/index.astro

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -343,7 +343,7 @@ import Placeholder from "@shortcodes/Placeholder.astro"
343343
<div class="mb-3">
344344
<label for="exampleSelect" class="form-label">قائمة اختيار</label>
345345
<select class="form-select" id="exampleSelect">
346-
<option selected>افتح قائمة الاختيار هذه</option>
346+
<option selected aria-hidden="true">افتح قائمة الاختيار هذه</option>
347347
<option value="1">واحد</option>
348348
<option value="2">اثنان</option>
349349
<option value="3">ثلاثة</option>
@@ -451,7 +451,7 @@ import Placeholder from "@shortcodes/Placeholder.astro"
451451
</div>
452452
<div class="mb-3">
453453
<select class="form-select form-select-lg" aria-label=".form-select-lg مثال">
454-
<option selected>افتح قائمة الاختيار هذه</option>
454+
<option selected aria-hidden="true">افتح قائمة الاختيار هذه</option>
455455
<option value="1">واحد</option>
456456
<option value="2">اثنان</option>
457457
<option value="3">ثلاثة</option>
@@ -468,7 +468,7 @@ import Placeholder from "@shortcodes/Placeholder.astro"
468468
</div>
469469
<div class="mb-3">
470470
<select class="form-select form-select-sm" aria-label=".form-select-sm مثال">
471-
<option selected>افتح قائمة الاختيار هذه</option>
471+
<option selected aria-hidden="true">افتح قائمة الاختيار هذه</option>
472472
<option value="1">واحد</option>
473473
<option value="2">اثنان</option>
474474
<option value="3">ثلاثة</option>
@@ -577,7 +577,7 @@ import Placeholder from "@shortcodes/Placeholder.astro"
577577
<div class="col-md-3">
578578
<label for="validationServer04" class="form-label">حالة</label>
579579
<select class="form-select is-invalid" id="validationServer04" required>
580-
<option selected disabled value="">اختر...</option>
580+
<option selected disabled value="" aria-hidden="true">اختر...</option>
581581
<option>...</option>
582582
</select>
583583
<div class="invalid-feedback">

site/src/assets/examples/cheatsheet/index.astro

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -327,7 +327,7 @@ export const body_class = 'bg-body-tertiary'
327327
<div class="mb-3">
328328
<label for="exampleSelect" class="form-label">Select menu</label>
329329
<select class="form-select" id="exampleSelect">
330-
<option selected>Open this select menu</option>
330+
<option selected aria-hidden="true">Open this select menu</option>
331331
<option value="1">One</option>
332332
<option value="2">Two</option>
333333
<option value="3">Three</option>
@@ -433,7 +433,7 @@ export const body_class = 'bg-body-tertiary'
433433
</div>
434434
<div class="mb-3">
435435
<select class="form-select form-select-lg" aria-label=".form-select-lg example">
436-
<option selected>Open this select menu</option>
436+
<option selected aria-hidden="true">Open this select menu</option>
437437
<option value="1">One</option>
438438
<option value="2">Two</option>
439439
<option value="3">Three</option>
@@ -449,7 +449,7 @@ export const body_class = 'bg-body-tertiary'
449449
</div>
450450
<div class="mb-3">
451451
<select class="form-select form-select-sm" aria-label=".form-select-sm example">
452-
<option selected>Open this select menu</option>
452+
<option selected aria-hidden="true">Open this select menu</option>
453453
<option value="1">One</option>
454454
<option value="2">Two</option>
455455
<option value="3">Three</option>
@@ -558,7 +558,7 @@ export const body_class = 'bg-body-tertiary'
558558
<div class="col-md-3">
559559
<label for="validationServer04" class="form-label">State</label>
560560
<select class="form-select is-invalid" id="validationServer04" required>
561-
<option selected disabled value="">Choose...</option>
561+
<option selected disabled value="" aria-hidden="true">Choose...</option>
562562
<option>...</option>
563563
</select>
564564
<div class="invalid-feedback">

site/src/content/docs/forms/floating-labels.mdx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ Other than `.form-control`, floating labels are only available on `.form-select`
5757

5858
<Example code={`<div class="form-floating">
5959
<select class="form-select" id="floatingSelect" aria-label="Floating label select example">
60-
<option selected>Open this select menu</option>
60+
<option selected aria-hidden="true">Open this select menu</option>
6161
<option value="1">One</option>
6262
<option value="2">Two</option>
6363
<option value="3">Three</option>
@@ -83,7 +83,7 @@ Add the `disabled` boolean attribute on an input, a textarea or a select to give
8383
</div>
8484
<div class="form-floating">
8585
<select class="form-select" id="floatingSelectDisabled" aria-label="Floating label disabled select example" disabled>
86-
<option selected>Open this select menu</option>
86+
<option selected aria-hidden="true">Open this select menu</option>
8787
<option value="1">One</option>
8888
<option value="2">Two</option>
8989
<option value="3">Three</option>
@@ -143,7 +143,7 @@ When working with the Bootstrap grid system, be sure to place form elements with
143143
<div class="col-md">
144144
<div class="form-floating">
145145
<select class="form-select" id="floatingSelectGrid">
146-
<option selected>Open this select menu</option>
146+
<option selected aria-hidden="true">Open this select menu</option>
147147
<option value="1">One</option>
148148
<option value="2">Two</option>
149149
<option value="3">Three</option>

site/src/content/docs/forms/input-group.mdx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -239,7 +239,7 @@ Input groups include support for custom selects and custom file inputs. Browser
239239
<Example code={`<div class="input-group mb-3">
240240
<label class="input-group-text" for="inputGroupSelect01">Options</label>
241241
<select class="form-select" id="inputGroupSelect01">
242-
<option selected>Choose...</option>
242+
<option selected aria-hidden="true">Choose...</option>
243243
<option value="1">One</option>
244244
<option value="2">Two</option>
245245
<option value="3">Three</option>
@@ -248,7 +248,7 @@ Input groups include support for custom selects and custom file inputs. Browser
248248
249249
<div class="input-group mb-3">
250250
<select class="form-select" id="inputGroupSelect02">
251-
<option selected>Choose...</option>
251+
<option selected aria-hidden="true">Choose...</option>
252252
<option value="1">One</option>
253253
<option value="2">Two</option>
254254
<option value="3">Three</option>
@@ -259,7 +259,7 @@ Input groups include support for custom selects and custom file inputs. Browser
259259
<div class="input-group mb-3">
260260
<button class="btn btn-outline-secondary" type="button">Button</button>
261261
<select class="form-select" id="inputGroupSelect03" aria-label="Example select with button addon">
262-
<option selected>Choose...</option>
262+
<option selected aria-hidden="true">Choose...</option>
263263
<option value="1">One</option>
264264
<option value="2">Two</option>
265265
<option value="3">Three</option>
@@ -268,7 +268,7 @@ Input groups include support for custom selects and custom file inputs. Browser
268268
269269
<div class="input-group">
270270
<select class="form-select" id="inputGroupSelect04" aria-label="Example select with button addon">
271-
<option selected>Choose...</option>
271+
<option selected aria-hidden="true">Choose...</option>
272272
<option value="1">One</option>
273273
<option value="2">Two</option>
274274
<option value="3">Three</option>

site/src/content/docs/forms/layout.mdx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ More complex layouts can also be created with the grid system.
8080
<div class="col-md-4">
8181
<label for="inputState" class="form-label">State</label>
8282
<select id="inputState" class="form-select">
83-
<option selected>Choose...</option>
83+
<option selected aria-hidden="true">Choose...</option>
8484
<option>...</option>
8585
</select>
8686
</div>
@@ -214,7 +214,7 @@ The example below uses a flexbox utility to vertically center the contents and c
214214
<div class="col-auto">
215215
<label class="visually-hidden" for="autoSizingSelect">Preference</label>
216216
<select class="form-select" id="autoSizingSelect">
217-
<option selected>Choose...</option>
217+
<option selected aria-hidden="true">Choose...</option>
218218
<option value="1">One</option>
219219
<option value="2">Two</option>
220220
<option value="3">Three</option>
@@ -250,7 +250,7 @@ You can then remix that once again with size-specific column classes.
250250
<div class="col-sm-3">
251251
<label class="visually-hidden" for="specificSizeSelect">Preference</label>
252252
<select class="form-select" id="specificSizeSelect">
253-
<option selected>Choose...</option>
253+
<option selected aria-hidden="true">Choose...</option>
254254
<option value="1">One</option>
255255
<option value="2">Two</option>
256256
<option value="3">Three</option>
@@ -285,7 +285,7 @@ Use the `.row-cols-*` classes to create responsive horizontal layouts. By adding
285285
<div class="col-12">
286286
<label class="visually-hidden" for="inlineFormSelectPref">Preference</label>
287287
<select class="form-select" id="inlineFormSelectPref">
288-
<option selected>Choose...</option>
288+
<option selected aria-hidden="true">Choose...</option>
289289
<option value="1">One</option>
290290
<option value="2">Two</option>
291291
<option value="3">Three</option>

site/src/content/docs/forms/select.mdx

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ toc: true
99
Custom `<select>` menus need only a custom class, `.form-select` to trigger the custom styles. Custom styles are limited to the `<select>`’s initial appearance and cannot modify the `<option>`s due to browser limitations.
1010

1111
<Example code={`<select class="form-select" aria-label="Default select example">
12-
<option selected>Open this select menu</option>
12+
<option selected aria-hidden="true">Open this select menu</option>
1313
<option value="1">One</option>
1414
<option value="2">Two</option>
1515
<option value="3">Three</option>
@@ -20,14 +20,14 @@ Custom `<select>` menus need only a custom class, `.form-select` to trigger the
2020
You may also choose from small and large custom selects to match our similarly sized text inputs.
2121

2222
<Example code={`<select class="form-select form-select-lg mb-3" aria-label="Large select example">
23-
<option selected>Open this select menu</option>
23+
<option selected aria-hidden="true">Open this select menu</option>
2424
<option value="1">One</option>
2525
<option value="2">Two</option>
2626
<option value="3">Three</option>
2727
</select>
2828
2929
<select class="form-select form-select-sm" aria-label="Small select example">
30-
<option selected>Open this select menu</option>
30+
<option selected aria-hidden="true">Open this select menu</option>
3131
<option value="1">One</option>
3232
<option value="2">Two</option>
3333
<option value="3">Three</option>
@@ -36,7 +36,7 @@ You may also choose from small and large custom selects to match our similarly s
3636
The `multiple` attribute is also supported:
3737

3838
<Example code={`<select class="form-select" multiple aria-label="Multiple select example">
39-
<option selected>Open this select menu</option>
39+
<option selected aria-hidden="true">Open this select menu</option>
4040
<option value="1">One</option>
4141
<option value="2">Two</option>
4242
<option value="3">Three</option>
@@ -45,7 +45,7 @@ The `multiple` attribute is also supported:
4545
As is the `size` attribute:
4646

4747
<Example code={`<select class="form-select" size="3" aria-label="Size 3 select example">
48-
<option selected>Open this select menu</option>
48+
<option selected aria-hidden="true">Open this select menu</option>
4949
<option value="1">One</option>
5050
<option value="2">Two</option>
5151
<option value="3">Three</option>
@@ -56,7 +56,7 @@ As is the `size` attribute:
5656
Add the `disabled` boolean attribute on a select to give it a grayed out appearance and remove pointer events.
5757

5858
<Example code={`<select class="form-select" aria-label="Disabled select example" disabled>
59-
<option selected>Open this select menu</option>
59+
<option selected aria-hidden="true">Open this select menu</option>
6060
<option value="1">One</option>
6161
<option value="2">Two</option>
6262
<option value="3">Three</option>

site/src/content/docs/forms/validation.mdx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ Custom feedback styles apply custom colors, borders, focus styles, and backgroun
6969
<div class="col-md-3">
7070
<label for="validationCustom04" class="form-label">State</label>
7171
<select class="form-select" id="validationCustom04" required>
72-
<option selected disabled value="">Choose...</option>
72+
<option selected disabled value="" aria-hidden="true">Choose...</option>
7373
<option>...</option>
7474
</select>
7575
<div class="invalid-feedback">
@@ -130,7 +130,7 @@ While these feedback styles cannot be styled with CSS, you can still customize t
130130
<div class="col-md-3">
131131
<label for="validationDefault04" class="form-label">State</label>
132132
<select class="form-select" id="validationDefault04" required>
133-
<option selected disabled value="">Choose...</option>
133+
<option selected disabled value="" aria-hidden="true">Choose...</option>
134134
<option>...</option>
135135
</select>
136136
</div>
@@ -194,7 +194,7 @@ To fix [issues with border radius](https://github.com/twbs/bootstrap/issues/2511
194194
<div class="col-md-3">
195195
<label for="validationServer04" class="form-label">State</label>
196196
<select class="form-select is-invalid" id="validationServer04" aria-describedby="validationServer04Feedback" required>
197-
<option selected disabled value="">Choose...</option>
197+
<option selected disabled value="" aria-hidden="true">Choose...</option>
198198
<option>...</option>
199199
</select>
200200
<div id="validationServer04Feedback" class="invalid-feedback">
@@ -316,7 +316,7 @@ If your form layout allows it, you can swap the `.{valid|invalid}-feedback` clas
316316
<div class="col-md-3 position-relative">
317317
<label for="validationTooltip04" class="form-label">State</label>
318318
<select class="form-select" id="validationTooltip04" required>
319-
<option selected disabled value="">Choose...</option>
319+
<option selected disabled value="" aria-hidden="true">Choose...</option>
320320
<option>...</option>
321321
</select>
322322
<div class="invalid-tooltip">

0 commit comments

Comments
 (0)