【发布时间】:2020-02-28 16:47:19
【问题描述】:
我想要的是更改可访问性顺序,即屏幕阅读器的顺序,即 Android 案例中的 TalkBack 在按下按钮后读取元素的顺序。这是我迄今为止尝试过的,但它不起作用,顺序仍然是最初的降序。 (在我的示例中,按钮的顺序为 b1、b2、b3,在我按下按钮更改顺序后,我希望顺序变为 b3、b1、b2)。
代码:
Button b1,b2,b3, changeorder;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
LinearLayout linearlayout = findViewById(R.id.linearlayout);
changeorder = new Button(this);
changeorder.setText("Presso to change order");
changeorder.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.i("BUTTON","Clicked change order button");
changeorder.setAccessibilityTraversalBefore(b3.getId());
b3.setAccessibilityTraversalAfter(changeorder.getId());
b3.setAccessibilityTraversalBefore(b1.getId());
b1.setAccessibilityTraversalAfter(b3.getId());
b1.setAccessibilityTraversalBefore(b2.getId());
b2.setAccessibilityTraversalAfter(b1.getId());
changeorder.setText("Order changed b3,b1,b2");
}
});
changeorder.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES);
linearlayout.addView(changeorder);
b1 = new Button(this);
b1.setText("BUTTON 1");
b1.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES);
linearlayout.addView(b1);
b2 = new Button(this);
b2.setText("BUTTON 2");
b2.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES);
linearlayout.addView(b2);
b3 = new Button(this);
b3.setText("BUTTON 3");
b3.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES);
linearlayout.addView(b3);
}
【问题讨论】:
标签: java android accessibility screen-readers talkback