【问题标题】:Why does react-modal require the prop contentLabel?为什么 react-modal 需要 prop contentLabel?
【发布时间】:2017-05-11 18:09:22
【问题描述】:

我开始在我的 react-modal 组件上收到此警告:

警告:失败的 propType:必需的 prop contentLabel 不是 在Modal中指定。

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

【问题讨论】:

    标签: reactjs react-modal


    【解决方案1】:

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

    Modal 对象有两个必需的属性:

    • isOpen 渲染它的孩子。
    • contentLabel 改进 a11y,因为 v1.6.0

    contentLabel 的值在模态元素上设置为aria-label。这有助于assistive technology 和屏幕阅读器一样,为原本匿名的元素添加标签。例如,有视力障碍的人在添加时可以更了解您的模式。

    【讨论】:

    • 是的,我看到了那篇文档,但它并没有准确解释为什么需要它。所以它是对用户的某种帮助。我想象它以某种方式起作用,不,我没有注意到它,所以问题是,它如何准确地提供帮助?
    • 在什么情况下有帮助?我看到了文档,但除了您在上面粘贴的内容之外,它什么也没说。
    • 更新了我的答案。
    【解决方案2】:

    在 thishttps://github.com/reactjs/react-modal/blob/master/dist/react-modal.js contentLabel 和 isOpen 中设置为 required 像这样 contentLabel:React.PropTypes.string.isRequired 如果你删除 .isRequired 那么你可以使用模态而不定义 contentLabel 属性。

    【讨论】:

    • 我知道我可以转到实际的包并对其进行修改,但我不想修改它,我只想了解使其成为必需的逻辑是什么。我认为旧版本的 react-modal 不需要它。
    • 这是因为 arial 标签。 aria-label 的作用与 lable 大致相同,但它适用于那些不实用或不希望在屏幕上显示标签的情况。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-19
    • 1970-01-01
    • 2016-06-25
    • 2018-11-19
    • 2017-02-06
    • 2016-08-09
    相关资源
    最近更新 更多