辅助功能Mac屏幕阅读器Aria-Live React-Redux

时间:2017-08-11 19:38:32

标签: redux react-router react-redux accessibility

我正在使用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)
        }
    }

0 个答案:

没有答案