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

时间:2019-03-22 12:13:36

标签: sapui5

我正在寻找一种使SAPUI5自定义控件可访问的方法。我构建了一种图块(基于VBox控件),并尝试通过键盘(标签)或单击鼠标访问此自定义控件。

我的想法是在自己的控件中实现sap.ui.core.Control#getAccessibilityInfo,但这似乎从未被调用过。目前,我正在尝试调试其他事物的工作方式,例如https://github.com/SAP/openui5/blob/master/src/sap.m/src/sap/m/ListBase.js,但找不到可行的方法。

我的控件当前位于表格内,如果单击它,焦点将设置为表格列。如果按Tab键,它将跳到控件内部的输入控件。

我的假设是,我错过了一些东西,因此该控件在某种程度上被认为是可聚焦的。

2 个答案:

答案 0 :(得分:0)

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

如果您需要启发,可以看看sap.m.List的实现。

答案 1 :(得分:0)

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

还要注意init部分的this._bExcludeFromTabChain = false;

相关问题