diff --git a/src/panels/lovelace/badges/hui-state-label-badge.ts b/src/panels/lovelace/badges/hui-state-label-badge.ts index 80d4a2a4df..6b077cdd7b 100644 --- a/src/panels/lovelace/badges/hui-state-label-badge.ts +++ b/src/panels/lovelace/badges/hui-state-label-badge.ts @@ -7,6 +7,7 @@ import { CSSResult, css, } from "lit-element"; +import { ifDefined } from "lit-html/directives/if-defined"; import "../../../components/entity/ha-state-label-badge"; import "../components/hui-warning-element"; @@ -47,7 +48,9 @@ export class HuiStateLabelBadge extends LitElement implements LovelaceBadge { hasHold: hasAction(this._config!.hold_action), hasDoubleClick: hasAction(this._config!.double_tap_action), })} - tabindex="0" + tabindex=${ifDefined( + hasAction(this._config.tap_action) ? "0" : undefined + )} > `; } diff --git a/src/panels/lovelace/cards/hui-entity-button-card.ts b/src/panels/lovelace/cards/hui-entity-button-card.ts index 5004285958..1860ef3e4a 100644 --- a/src/panels/lovelace/cards/hui-entity-button-card.ts +++ b/src/panels/lovelace/cards/hui-entity-button-card.ts @@ -10,6 +10,7 @@ import { } from "lit-element"; import { HassEntity } from "home-assistant-js-websocket"; import { styleMap } from "lit-html/directives/style-map"; +import { ifDefined } from "lit-html/directives/if-defined"; import "@material/mwc-ripple"; import "../../../components/ha-card"; @@ -134,7 +135,9 @@ class HuiEntityButtonCard extends LitElement implements LovelaceCard { hasHold: hasAction(this._config!.hold_action), hasDoubleClick: hasAction(this._config!.double_tap_action), })} - tabindex="0" + tabindex=${ifDefined( + hasAction(this._config.tap_action) ? "0" : undefined + )} > ${this._config.show_icon ? html` diff --git a/src/panels/lovelace/cards/hui-glance-card.ts b/src/panels/lovelace/cards/hui-glance-card.ts index 46dd8960dc..0ce4b2cae9 100644 --- a/src/panels/lovelace/cards/hui-glance-card.ts +++ b/src/panels/lovelace/cards/hui-glance-card.ts @@ -9,6 +9,7 @@ import { CSSResult, } from "lit-element"; import { classMap } from "lit-html/directives/class-map"; +import { ifDefined } from "lit-html/directives/if-defined"; import { computeStateName } from "../../../common/entity/compute_state_name"; import { applyThemesOnElement } from "../../../common/dom/apply_themes_on_element"; @@ -214,7 +215,9 @@ export class HuiGlanceCard extends LitElement implements LovelaceCard { hasHold: hasAction(entityConf.hold_action), hasDoubleClick: hasAction(entityConf.double_tap_action), })} - tabindex="0" + tabindex=${ifDefined( + hasAction(entityConf.tap_action) ? "0" : undefined + )} > ${this._config!.show_name !== false ? html` diff --git a/src/panels/lovelace/cards/hui-picture-card.ts b/src/panels/lovelace/cards/hui-picture-card.ts index c34577bf02..7529fc0332 100644 --- a/src/panels/lovelace/cards/hui-picture-card.ts +++ b/src/panels/lovelace/cards/hui-picture-card.ts @@ -8,6 +8,7 @@ import { CSSResult, PropertyValues, } from "lit-element"; +import { ifDefined } from "lit-html/directives/if-defined"; import "../../../components/ha-card"; @@ -20,7 +21,6 @@ import { actionHandler } from "../common/directives/action-handler-directive"; import { hasAction } from "../common/has-action"; import { ActionHandlerEvent } from "../../../data/lovelace"; import { handleAction } from "../common/handle-action"; -import { ifDefined } from "lit-html/directives/if-defined"; @customElement("hui-picture-card") export class HuiPictureCard extends LitElement implements LovelaceCard { diff --git a/src/panels/lovelace/cards/hui-picture-entity-card.ts b/src/panels/lovelace/cards/hui-picture-entity-card.ts index dc64553169..ff2d9652e3 100644 --- a/src/panels/lovelace/cards/hui-picture-entity-card.ts +++ b/src/panels/lovelace/cards/hui-picture-entity-card.ts @@ -9,6 +9,7 @@ import { PropertyValues, } from "lit-element"; import { classMap } from "lit-html/directives/class-map"; +import { ifDefined } from "lit-html/directives/if-defined"; import "../../../components/ha-card"; import "../components/hui-image"; @@ -156,7 +157,9 @@ class HuiPictureEntityCard extends LitElement implements LovelaceCard { hasHold: hasAction(this._config!.hold_action), hasDoubleClick: hasAction(this._config!.double_tap_action), })} - tabindex="0" + tabindex=${ifDefined( + hasAction(this._config.tap_action) ? "0" : undefined + )} class=${classMap({ clickable: stateObj.state !== UNAVAILABLE, })} diff --git a/src/panels/lovelace/cards/hui-picture-glance-card.ts b/src/panels/lovelace/cards/hui-picture-glance-card.ts index 0a4802b8fa..07aa27b9f0 100644 --- a/src/panels/lovelace/cards/hui-picture-glance-card.ts +++ b/src/panels/lovelace/cards/hui-picture-glance-card.ts @@ -9,6 +9,7 @@ import { PropertyValues, } from "lit-element"; import { classMap } from "lit-html/directives/class-map"; +import { ifDefined } from "lit-html/directives/if-defined"; import "../../../components/ha-card"; import "../../../components/ha-icon"; @@ -168,7 +169,9 @@ class HuiPictureGlanceCard extends LitElement implements LovelaceCard { hasHold: hasAction(this._config!.hold_action), hasDoubleClick: hasAction(this._config!.double_tap_action), })} - tabindex="0" + tabindex=${ifDefined( + hasAction(this._config.tap_action) ? "0" : undefined + )} .config=${this._config} .hass=${this.hass} .image=${this._config.image} @@ -231,7 +234,9 @@ class HuiPictureGlanceCard extends LitElement implements LovelaceCard { hasHold: hasAction(entityConf.hold_action), hasDoubleClick: hasAction(entityConf.double_tap_action), })} - tabindex="0" + tabindex=${ifDefined( + hasAction(entityConf.tap_action) ? "0" : undefined + )} .config=${entityConf} class="${classMap({ "state-on": !STATES_OFF.has(stateObj.state), diff --git a/src/panels/lovelace/components/hui-generic-entity-row.ts b/src/panels/lovelace/components/hui-generic-entity-row.ts index 944d1c2f1c..39a2d84bca 100644 --- a/src/panels/lovelace/components/hui-generic-entity-row.ts +++ b/src/panels/lovelace/components/hui-generic-entity-row.ts @@ -8,6 +8,7 @@ import { property, TemplateResult, } from "lit-element"; +import { ifDefined } from "lit-html/directives/if-defined"; import "../../../components/entity/state-badge"; import "../../../components/ha-relative-time"; @@ -72,7 +73,9 @@ class HuiGenericEntityRow extends LitElement { hasHold: hasAction(this.config!.hold_action), hasDoubleClick: hasAction(this.config!.double_tap_action), })} - tabindex="0" + tabindex=${ifDefined( + hasAction(this.config.tap_action) ? "0" : undefined + )} >
`; } diff --git a/src/panels/lovelace/elements/hui-image-element.ts b/src/panels/lovelace/elements/hui-image-element.ts index 27fc1547db..f9bcb3bc00 100644 --- a/src/panels/lovelace/elements/hui-image-element.ts +++ b/src/panels/lovelace/elements/hui-image-element.ts @@ -7,6 +7,7 @@ import { css, CSSResult, } from "lit-element"; +import { ifDefined } from "lit-html/directives/if-defined"; import "../components/hui-image"; @@ -56,7 +57,9 @@ export class HuiImageElement extends LitElement implements LovelaceElement { hasHold: hasAction(this._config!.hold_action), hasDoubleClick: hasAction(this._config!.double_tap_action), })} - tabindex="0" + tabindex=${ifDefined( + hasAction(this._config.tap_action) ? "0" : undefined + )} > `; } diff --git a/src/panels/lovelace/elements/hui-state-badge-element.ts b/src/panels/lovelace/elements/hui-state-badge-element.ts index 63577010ce..884d6c7abc 100644 --- a/src/panels/lovelace/elements/hui-state-badge-element.ts +++ b/src/panels/lovelace/elements/hui-state-badge-element.ts @@ -6,6 +6,7 @@ import { property, PropertyValues, } from "lit-element"; +import { ifDefined } from "lit-html/directives/if-defined"; import "../../../components/entity/ha-state-label-badge"; import "../components/hui-warning-element"; @@ -70,7 +71,9 @@ export class HuiStateBadgeElement extends LitElement hasHold: hasAction(this._config!.hold_action), hasDoubleClick: hasAction(this._config!.double_tap_action), })} - tabindex="0" + tabindex=${ifDefined( + hasAction(this._config.tap_action) ? "0" : undefined + )} > `; } diff --git a/src/panels/lovelace/elements/hui-state-icon-element.ts b/src/panels/lovelace/elements/hui-state-icon-element.ts index 3d285d41c1..4ad6e9642a 100644 --- a/src/panels/lovelace/elements/hui-state-icon-element.ts +++ b/src/panels/lovelace/elements/hui-state-icon-element.ts @@ -8,6 +8,7 @@ import { CSSResult, PropertyValues, } from "lit-element"; +import { ifDefined } from "lit-html/directives/if-defined"; import "../../../components/entity/state-badge"; import "../components/hui-warning-element"; @@ -66,7 +67,9 @@ export class HuiStateIconElement extends LitElement implements LovelaceElement { hasHold: hasAction(this._config!.hold_action), hasDoubleClick: hasAction(this._config!.double_tap_action), })} - tabindex="0" + tabindex=${ifDefined( + hasAction(this._config.tap_action) ? "0" : undefined + )} .overrideIcon=${this._config.icon} > `; diff --git a/src/panels/lovelace/elements/hui-state-label-element.ts b/src/panels/lovelace/elements/hui-state-label-element.ts index 7fafb563fd..c4a5aa690d 100644 --- a/src/panels/lovelace/elements/hui-state-label-element.ts +++ b/src/panels/lovelace/elements/hui-state-label-element.ts @@ -8,6 +8,7 @@ import { CSSResult, PropertyValues, } from "lit-element"; +import { ifDefined } from "lit-html/directives/if-defined"; import "../components/hui-warning-element"; @@ -65,7 +66,9 @@ class HuiStateLabelElement extends LitElement implements LovelaceElement { hasHold: hasAction(this._config!.hold_action), hasDoubleClick: hasAction(this._config!.double_tap_action), })} - tabindex="0" + tabindex=${ifDefined( + hasAction(this._config.tap_action) ? "0" : undefined + )} > ${this._config.prefix}${stateObj ? computeStateDisplay( diff --git a/src/panels/lovelace/entity-rows/hui-input-select-entity-row.ts b/src/panels/lovelace/entity-rows/hui-input-select-entity-row.ts index bff9315b0a..d33cd10a2f 100644 --- a/src/panels/lovelace/entity-rows/hui-input-select-entity-row.ts +++ b/src/panels/lovelace/entity-rows/hui-input-select-entity-row.ts @@ -8,6 +8,7 @@ import { customElement, PropertyValues, } from "lit-element"; +import { ifDefined } from "lit-html/directives/if-defined"; import "@polymer/paper-item/paper-item"; import "@polymer/paper-listbox/paper-listbox"; @@ -87,7 +88,9 @@ class HuiInputSelectEntityRow extends LitElement implements EntityRow { hasHold: hasAction(this._config!.hold_action), hasDoubleClick: hasAction(this._config!.double_tap_action), })} - tabindex="0" + tabindex=${ifDefined( + hasAction(this._config.tap_action) ? "0" : undefined + )} >