Skip to content

Commit d553a8a

Browse files
committed
fix(material/radio): hide decorative elements from assistive technology
Hides the radio's decorative elements from screen readers so they don't interfere. Fixes #32797.
1 parent e88647a commit d553a8a

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

src/material/radio/radio.html

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
<div mat-internal-form-field [labelPosition]="labelPosition" #formField>
22
<div class="mdc-radio" [class.mdc-radio--disabled]="disabled">
33
<!-- Render this element first so the input is on top. -->
4-
<div class="mat-mdc-radio-touch-target" (click)="_onTouchTargetClick($event)"></div>
4+
<div
5+
class="mat-mdc-radio-touch-target"
6+
(click)="_onTouchTargetClick($event)"
7+
aria-hidden="true"></div>
58
<!--
69
Note that we set `aria-invalid="false"` on the input, because otherwise some screen readers
710
will read out "required, invalid data" for each radio button that hasn't been checked.
@@ -22,14 +25,15 @@
2225
[attr.aria-describedby]="ariaDescribedby"
2326
[attr.aria-disabled]="disabled && disabledInteractive ? 'true' : null"
2427
(change)="_onInputInteraction($event)">
25-
<div class="mdc-radio__background">
28+
<div class="mdc-radio__background" aria-hidden="true">
2629
<div class="mdc-radio__outer-circle"></div>
2730
<div class="mdc-radio__inner-circle"></div>
2831
</div>
2932
<div mat-ripple class="mat-radio-ripple mat-focus-indicator"
3033
[matRippleTrigger]="_rippleTrigger.nativeElement"
3134
[matRippleDisabled]="_isRippleDisabled()"
32-
[matRippleCentered]="true">
35+
[matRippleCentered]="true"
36+
aria-hidden="true">
3337
<div class="mat-ripple-element mat-radio-persistent-ripple"></div>
3438
</div>
3539
</div>

0 commit comments

Comments
 (0)