@@ -114,4 +116,4 @@ export class LinearProgress extends LitElement {
this.animationReady = true;
await this.updateComplete;
}
-}
\ No newline at end of file
+}
diff --git a/list/lib/list.ts b/list/lib/list.ts
index fbe614fa23..e0da0ed3aa 100644
--- a/list/lib/list.ts
+++ b/list/lib/list.ts
@@ -4,17 +4,13 @@
* SPDX-License-Identifier: Apache-2.0
*/
-// Required for @ariaProperty
-// tslint:disable:no-new-decorators
-
import {html, LitElement, nothing, TemplateResult} from 'lit';
import {property, query, queryAssignedElements} from 'lit/decorators.js';
import {ClassInfo, classMap} from 'lit/directives/class-map.js';
-import {ifDefined} from 'lit/directives/if-defined.js';
-import {ariaProperty} from '../../decorators/aria-property.js';
+import {requestUpdateOnAriaChange} from '../../aria/delegate.js';
import {keydownHandler} from '../../focus/strong-focus.js';
-import {ARIARole} from '../../types/aria.js';
+import {ARIAMixinStrict, ARIARole} from '../../types/aria.js';
import {ListItem} from './listitem/list-item.js';
@@ -35,23 +31,19 @@ function isNavigableKey(key: string): key is NavigatableValues {
// tslint:disable-next-line:enforce-comments-on-exported-symbols
export class List extends LitElement {
+ static {
+ requestUpdateOnAriaChange(this);
+ }
+
static override shadowRootOptions:
ShadowRootInit = {mode: 'open', delegatesFocus: true};
- @ariaProperty
- @property({attribute: 'data-aria-label', noAccessor: true})
- override ariaLabel!: string;
-
- @ariaProperty
- @property({attribute: 'data-aria-activedescendant', noAccessor: true})
- ariaActivedescendant!: string;
-
@property() type: ARIARole|'' = 'list';
/**
* The tabindex of the underlying list.
*/
- @property({type: Number}) listTabIndex: number = 0;
+ @property({type: Number}) listTabIndex = 0;
@query('.md3-list') listRoot!: HTMLElement;
@@ -74,9 +66,11 @@ export class List extends LitElement {
* Renders the main list element.
*/
protected renderList() {
+ // Needed for closure conformance
+ const {ariaLabel} = this as ARIAMixinStrict;
return html`
diff --git a/navigationtab/lib/navigation-tab.ts b/navigationtab/lib/navigation-tab.ts
index 75f39d3d6b..3d4fd153f9 100644
--- a/navigationtab/lib/navigation-tab.ts
+++ b/navigationtab/lib/navigation-tab.ts
@@ -11,13 +11,13 @@ import '../../ripple/ripple.js';
import {html, LitElement, nothing, PropertyValues} from 'lit';
import {property, query, queryAsync, state} from 'lit/decorators.js';
import {classMap} from 'lit/directives/class-map.js';
-import {ifDefined} from 'lit/directives/if-defined.js';
import {when} from 'lit/directives/when.js';
-import {ariaProperty} from '../../decorators/aria-property.js';
+import {requestUpdateOnAriaChange} from '../../aria/delegate.js';
import {pointerPress, shouldShowStrongFocus} from '../../focus/strong-focus.js';
import {ripple} from '../../ripple/directive.js';
import {MdRipple} from '../../ripple/ripple.js';
+import {ARIAMixinStrict} from '../../types/aria.js';
import {NavigationTabState} from './state.js';
@@ -25,6 +25,10 @@ import {NavigationTabState} from './state.js';
* TODO(b/265346501): add docs
*/
export class NavigationTab extends LitElement implements NavigationTabState {
+ static {
+ requestUpdateOnAriaChange(this);
+ }
+
@property({type: Boolean}) disabled = false;
@property({type: Boolean, reflect: true}) active = false;
@property({type: Boolean}) hideInactiveLabel = false;
@@ -35,21 +39,19 @@ export class NavigationTab extends LitElement implements NavigationTabState {
@state() protected showFocusRing = false;
@state() protected showRipple = false;
- @ariaProperty // tslint:disable-line:no-new-decorators
- @property({attribute: 'data-aria-label', noAccessor: true})
- override ariaLabel!: string;
-
@query('button') buttonElement!: HTMLElement;
@queryAsync('md-ripple') ripple!: Promise;
override render() {
+ // Needed for closure conformance
+ const {ariaLabel} = this as ARIAMixinStrict;
return html`