diff --git a/packages/main/cypress/specs/Link.cy.tsx b/packages/main/cypress/specs/Link.cy.tsx index 307366683e29..cc4812e79673 100644 --- a/packages/main/cypress/specs/Link.cy.tsx +++ b/packages/main/cypress/specs/Link.cy.tsx @@ -260,65 +260,4 @@ describe("General API", () => { cy.get("@signInDialog") .should("be.visible"); }); - - it("tabindex should update when text content is added after mount", () => { - // Mount link without text content - cy.mount(); - - // Initially, tabindex should be -1 because there's no text content - cy.get("#dynamic-link") - .shadow() - .find(".ui5-link-root") - .should("have.attr", "tabindex", "-1"); - - // Add text content dynamically - cy.get("#dynamic-link") - .then($link => { - $link[0].textContent = "Click me"; - }); - - // After text is added, tabindex should become 0 - cy.get("#dynamic-link") - .shadow() - .find(".ui5-link-root") - .should("have.attr", "tabindex", "0"); - }); - - it("tabindex should remain 0 when text content changes", () => { - cy.mount(Initial Text); - - cy.get("#text-change-link") - .shadow() - .find(".ui5-link-root") - .should("have.attr", "tabindex", "0"); - - cy.get("#text-change-link") - .then($link => { - $link[0].textContent = "Updated Text"; - }); - - cy.get("#text-change-link") - .shadow() - .find(".ui5-link-root") - .should("have.attr", "tabindex", "0"); - }); - - it("tabindex should be -1 when text content is removed", () => { - cy.mount(Some text); - - cy.get("#remove-text-link") - .shadow() - .find(".ui5-link-root") - .should("have.attr", "tabindex", "0"); - - cy.get("#remove-text-link") - .then($link => { - $link[0].textContent = ""; - }); - - cy.get("#remove-text-link") - .shadow() - .find(".ui5-link-root") - .should("have.attr", "tabindex", "-1"); - }); }); diff --git a/packages/main/src/Link.ts b/packages/main/src/Link.ts index de62c5cfccb8..f59d9d220fbf 100644 --- a/packages/main/src/Link.ts +++ b/packages/main/src/Link.ts @@ -2,7 +2,6 @@ import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js"; import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js"; import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js"; import property from "@ui5/webcomponents-base/dist/decorators/property.js"; -import slot from "@ui5/webcomponents-base/dist/decorators/slot.js"; import jsxRenderer from "@ui5/webcomponents-base/dist/renderer/JsxRenderer.js"; import type { AccessibilityAttributes } from "@ui5/webcomponents-base/dist/types.js"; import { isSpace, isEnter } from "@ui5/webcomponents-base/dist/Keys.js"; @@ -269,15 +268,6 @@ class Link extends UI5Element implements ITabbable { @property() endIcon?: string; - /** - * Defines the text of the component. - * - * **Note:** Although this slot accepts HTML Elements, it is strongly recommended that you only use text in order to preserve the intended design. - * @public - */ - @slot({ type: Node, "default": true }) - text!: Array; - @property({ noAttribute: true }) _rel: string | undefined; @@ -321,7 +311,7 @@ class Link extends UI5Element implements ITabbable { return Number.parseInt(this.forcedTabIndex); } - return (this.disabled || !this.textContent?.length) ? -1 : 0; + return this.disabled ? -1 : 0; } get ariaLabelText() {