我正在使用react redux来传达路由中的更改(有关实现的详细信息,请参阅http://almerosteyn.com/2017/03/accessible-react-navigation)。我遇到的问题是,如果我通过按钮单击(按回车键)从一个路径导航到另一个路径,屏幕阅读器会在加载下一页时读取按钮详细信息。一旦它被加载,虽然它没有读取a11y消息中的消息。
有没有办法可以强制它读出来,确保即使它迟到它也会加载?
render() {
const { currentA11yMessage } = this.state;
return (
<div className="sr-only"
role="status"
aria-live="polite"
aria-atomic="true">
{currentA11yMessage ? <span>{currentA11yMessage}</span> : ''}
</div>
);
}
componentWillReceiveProps(nextProps){
//We delay the setting and clearing of the accessible route transition
//text to ensure that the screen readers don't miss it.
if(nextProps.a11yMessage){
setTimeout(()=>{this.setState({
currentA11yMessage: nextProps.a11yMessage
})}, 50);
setTimeout(()=>{this.setState({
currentA11yMessage: ''
})}, 500)
}
}