字体与 SVG:该使用哪种方法?这两种方法都可以很好地工作,但是,它们之间有一些微妙的差异,特别是在性能和渲染质量方面。只要有可能,首选 SVG,因为它允许代码拆分,支持更多的图标,并且渲染速度更快、质量更好。
欲了解更多详情,请查看 为什么 GitHub 从字体图标迁移到 SVG 图标。
无障碍图标可以传达各种有意义的信息,因此确保它们在适当的时候具备可访问性非常重要。你需要考虑以下两种用例
装饰性图标,仅用于视觉或品牌强化。如果将它们从页面中移除,用户仍然能够理解并使用你的页面。
语义化图标,用于传达含义,而不仅仅是纯粹的装饰。这包括旁边没有文字、用作交互控件的图标——例如按钮、表单元素、开关等。
装饰性图标如果你的图标纯粹是装饰性的,那么你已经完成了!添加 aria-hidden=true 属性是为了让你的图标具备适当的可访问性(不可见)。
语义化图标语义化 SVG 图标你应该包含带有有意义值的 titleAccess 属性。添加 role="img" 属性和
对于可聚焦的交互元素,例如与图标按钮一起使用时,你可以使用 aria-label 属性
import IconButton from '@mui/material/IconButton';
import SvgIcon from '@mui/material/SvgIcon';
// ...
;
复制已复制(或 C)
语义化字体图标你需要提供一个仅对辅助技术可见的文本替代项。
import Box from '@mui/material/Box';
import Icon from '@mui/material/Icon';
import { visuallyHidden } from '@mui/utils';
// ...
复制已复制(或 C)
参考
https://www.tpgi.com/using-aria-enhance-svg-accessibility/