如何使SAPUI5自定义控件可访问(焦点处理)?

问题描述 投票:1回答:2

我正在寻找一种方法来访问SAPUI5自定义控件。我构建了一种磁贴(基于VBox控件)并尝试通过键盘(选项卡)或单击鼠标来访问此自定义控件。

我的想法是在我的控制中实现sap.ui.core.Control#getAccessibilityInfo,但这似乎永远不会被调用。目前我正在尝试调试其他东西如何做https://github.com/SAP/openui5/blob/master/src/sap.m/src/sap/m/ListBase.js,但我找不到一种有效的方法。

我的控件当前放在一个表中,如果我点击它,焦点将被设置为表列。如果我按Tab键,它会跳转到我控件内的输入控件。

我的假设,我错过了一些东西,以便控制在某种程度上被认为是可聚焦的。

sapui5
2个回答
0
投票

我认为你正在寻找ItemNavigation。 VBox的设计不支持键盘导航的内容,但你可以为自定义控件的onAfterRendering添加一个钩子,收集你需要导航的所有dom ref并将它们传递给ItemNavigation.setItemDomRefs。

如果您需要灵感,可以查看sap.m.List实现。


0
投票

重要的是将oRM.writeAttribute("tabindex", "0"); // allows selection添加到我自己控制的渲染器中。这允许使用标签处理。完整代码在另一个问题:How to copy&paste SAPUI5 controls by pressing Ctrl+C and Ctrl.V?使用此控件可以选择。

另请注意init部分中的this._bExcludeFromTabChain = false;

© www.soinside.com 2019 - 2024. All rights reserved.