Skip to content

Commit ffa2c4c

Browse files
fix(ui5-link): event is now fired on Space/Enter (#3374)
Fixes: #3007 Closes: #3007
1 parent 9bd9ce4 commit ffa2c4c

File tree

1 file changed

+23
-1
lines changed

1 file changed

+23
-1
lines changed

packages/main/src/Link.js

+23-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
22
import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
3+
import { isSpace, isEnter } from "@ui5/webcomponents-base/dist/Keys.js";
34
import { getEffectiveAriaLabelText } from "@ui5/webcomponents-base/dist/util/AriaLabelHelper.js";
45
import { fetchI18nBundle, getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
56
import LinkDesign from "./types/LinkDesign.js";
@@ -279,11 +280,32 @@ class Link extends UI5Element {
279280
}
280281

281282
_onkeydown(event) {
283+
if (isEnter(event)) {
284+
const executeEvent = this.fireEvent("click", null, true);
285+
286+
if (executeEvent) {
287+
event.preventDefault();
288+
this.href && window.open(this.href, this.target);
289+
}
290+
} else if (isSpace(event)) {
291+
event.preventDefault();
292+
}
293+
282294
event.isMarked = "link";
283295
}
284296

285297
_onkeyup(event) {
286-
event.isMarked = "link";
298+
if (!isSpace(event)) {
299+
event.isMarked = "link";
300+
return;
301+
}
302+
303+
event.preventDefault();
304+
305+
const executeEvent = this.fireEvent("click", null, true);
306+
if (executeEvent) {
307+
this.href && window.open(this.href, this.target);
308+
}
287309
}
288310
}
289311

0 commit comments

Comments
 (0)