@@ -97,6 +97,7 @@ export class MatRadioGroup extends _MatRadioGroupBase<MatRadioButton> {
9797 '[class.mat-primary]' : 'color === "primary"' ,
9898 '[class.mat-accent]' : 'color === "accent"' ,
9999 '[class.mat-warn]' : 'color === "warn"' ,
100+ '[class._mat-animation-noopable]' : '_noopAnimations' ,
100101 // Needs to be removed since it causes some a11y issues (see #21266).
101102 '[attr.tabindex]' : 'null' ,
102103 '[attr.aria-label]' : 'null' ,
@@ -126,10 +127,11 @@ export class MatRadioButton extends _MatRadioButtonBase implements AfterViewInit
126127 } ;
127128
128129 /** Configuration for the underlying ripple. */
129- _rippleAnimation : RippleAnimationConfig = RIPPLE_ANIMATION_CONFIG ;
130+ _rippleAnimation : RippleAnimationConfig ;
130131
131132 _radioFoundation = new MDCRadioFoundation ( this . _radioAdapter ) ;
132133 _classes : { [ key : string ] : boolean } = { } ;
134+ _noopAnimations : boolean ;
133135
134136 constructor ( @Optional ( ) @Inject ( MAT_RADIO_GROUP ) radioGroup : MatRadioGroup ,
135137 elementRef : ElementRef ,
@@ -142,6 +144,9 @@ export class MatRadioButton extends _MatRadioButtonBase implements AfterViewInit
142144 @Attribute ( 'tabindex' ) tabIndex ?: string ) {
143145 super ( radioGroup , elementRef , _changeDetector , _focusMonitor ,
144146 _radioDispatcher , _animationMode , _providerOverride , tabIndex ) ;
147+ this . _noopAnimations = _animationMode === 'NoopAnimations' ;
148+ this . _rippleAnimation =
149+ this . _noopAnimations ? { enterDuration : 0 , exitDuration : 0 } : RIPPLE_ANIMATION_CONFIG ;
145150 }
146151
147152 ngAfterViewInit ( ) {
0 commit comments