重复问题
- 我搜索了现有的问题
最新版本
- 我测试了最新版本
当前行为 😯
当我使用 SvgIcon
和 component
prop,例如:
<SvgIcon
component={MySvgIcon}
titleAccess="My title"
/>
aria-hidden="true"
将被移除,role="img"
将被添加,但没有 <title>My title</tag>
被添加到 svg 中
预期行为 🤔
titleAccess
prop 应该在 SVG
元素上添加 <title>my title here</title>
标签。
重现步骤 🕹
步骤:
- 使用 webpack
svgr
插件将自定义 SVG 图标导入为 ReactComponent"
import { ReactComponent as StarIcon } from './star.svg';
- 在
component
prop 中的SvgIcon
组件中使用导入的 SVG,并使用titleAccess
<SvgIcon
component={StarIcon}
titleAccess="My title"
/>
上下文 🔦
我想使用自定义的 SVG 图标与 Material UI SvgIcon 组件一起使用,并使其完全可访问。
你的环境 🌎
System: OS: macOS 12.4 Binaries: Node: 16.14.0 - ~/.nvm/versions/node/v16.14.0/bin/node Yarn: 1.22.17 - ~/.nvm/versions/node/v16.14.0/bin/yarn npm: 8.10.0 - ~/work/PWA-Framework/node_modules/.bin/npm Browsers: Chrome: 103.0.5060.114 Edge: Not Found Firefox: 98.0.2 Safari: 15.5 npmPackages: @emotion/styled: 10.3.0 @types/react: 18.0.1 => 18.0.1 react: 18.0.0 => 18.0.0 react-dom: 18.0.0 => 18.0.0 styled-components: 5.3.5 => 5.3.5 typescript: 4.4 => 4.4.4
4条答案
按热度按时间vmpqdwk31#
请提供一个CodeSandbox(https://mui.com/r/issue-template或https://mui.com/r/ts-issue-template),一个指向GitHub仓库的链接,或者提供一个最小的代码示例来重现问题。
以下是提供最小示例的一些提示:https://stackoverflow.com/help/mcve
kx5bkwkv2#
你好!
我也遇到了这个问题,并整理了一个关于问题的最小复现。
https://codesandbox.io/s/mui-svgicon-component-prop-titleaccess-issue-repro-ml1ucj?file=/src/App.tsx
当在React函数组件中使用component prop时,titleAccess不起作用(第一个示例)。
第二个示例展示了将
<path/>
传递给子元素,这正确地应用了<title>
。希望这对你有帮助,感谢这个很棒的库!
lo8azlld3#
感谢@richardhuf84提供的代码示例:)
lnvxswe24#
看起来
<title>
标签已被移除,因为SvgIconRoot使用了as
属性,并用component
属性的值替换了Root节点。https://github.com/mui/material-ui/blob/master/packages/mui-material/src/SvgIcon/SvgIcon.js#L97