我正在寻找一种使SAPUI5自定义控件可访问的方法。我构建了一种图块(基于VBox控件),并尝试通过键盘(标签)或单击鼠标访问此自定义控件。
我的想法是在自己的控件中实现sap.ui.core.Control#getAccessibilityInfo
,但这似乎从未被调用过。目前,我正在尝试调试其他事物的工作方式,例如https://github.com/SAP/openui5/blob/master/src/sap.m/src/sap/m/ListBase.js,但找不到可行的方法。
我的控件当前位于表格内,如果单击它,焦点将设置为表格列。如果按Tab键,它将跳到控件内部的输入控件。
我的假设是,我错过了一些东西,因此该控件在某种程度上被认为是可聚焦的。
答案 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;
。