为什么 react-modal 需要 prop contentLabel?

Why does react-modal require the prop contentLabel?

我开始在我的反应模态组件上收到此警告:

Warning: Failed propType: Required prop contentLabel was not specified in Modal.

它不会阻止模态正常工作,我只是在开发工具控制台中看到警告。我可以通过指定一些随机字符串来传递这个道具,但我不明白它的实际用途,以及为什么需要它。

contentLabel 提高了可访问性。您可能没有注意到它,但在某些情况下,此 prop 可以帮助您的用户了解模态的含义。来自 their repository:

The Modal object has two required props:

  • isOpen to render its children.
  • contentLabel to improve a11y, since v1.6.0.

contentLabel 的值被设置为 aria-label on the modal element. This helps assistive technology,就像屏幕阅读器一样,为元素添加标签,否则该元素将是匿名的。例如,有视力障碍的人在添加时可以从您的模态中获得更多意义。

在此https://github.com/reactjs/react-modal/blob/master/dist/react-modal.js中,contentLabel 和 isOpen 设置为 required,如下所示 contentLabel:React.PropTypes.string.isRequired 如果删除 .isRequired,则无需定义 contentLabel 道具即可使用模式。