为什么使用 @svg 指令时屏幕阅读器会读取 SVG 的样式 (Laravel)

发布于 2025-01-10 21:11:18 字数 2061 浏览 0 评论 0原文

我在 Laravel 中使用 @svg() 指令时遇到了一个 SVG 问题。

以下是我如何包含 svg @svg('trustpilot/5- rating')

这是我包含的 SVG 文件。

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 37.5">
<defs>
    <style>.tp5-1{fill:#00b67a;}.tp5-2{fill:#fff;}</style>
</defs>
<title>Asset 4</title>
<g id="Layer_2" data-name="Layer 2">
    <g id="Layer_1-2" data-name="Layer 1">
        <rect class="tp5-1" width="37.5" height="37.5"/>
        <rect class="tp5-1" x="40.63" width="37.5" height="37.5"/>
        <rect class="tp5-1" x="81.25" width="37.5" height="37.5"/>
        <rect class="tp5-1" x="121.88" width="37.5" height="37.5"/>
        <rect class="tp5-1" x="162.5" width="37.5" height="37.5"/>
        <path class="tp5-2" d="M18.75,25.27l5.7-1.44,2.39,7.34Zm13.12-9.49h-10L18.75,6.33l-3.09,9.45h-10l8.13,5.86-3.09,9.45,8.13-5.86,5-3.59,8.08-5.86Z"/>
        <path class="tp5-2" d="M59.38,25.27l5.7-1.44,2.38,7.34ZM72.5,15.78h-10L59.38,6.33l-3.09,9.45h-10l8.13,5.86-3.09,9.45,8.12-5.86,5-3.59,8.09-5.86Z"/>
        <path class="tp5-2" d="M100,25.27l5.7-1.44,2.39,7.34Zm13.13-9.49h-10L100,6.33l-3.09,9.45h-10L95,21.64l-3.09,9.45L100,25.23l5-3.59,8.09-5.86Z"/>
        <path class="tp5-2" d="M140.62,25.27l5.71-1.44,2.38,7.34Zm13.13-9.49h-10l-3.09-9.45-3.08,9.45h-10l8.12,5.86-3.08,9.45,8.12-5.86,5-3.59,8.09-5.86Z"/>
        <path class="tp5-2" d="M181.25,25.27l5.7-1.44,2.39,7.34Zm13.13-9.49h-10l-3.09-9.45-3.09,9.45h-10l8.13,5.86-3.09,9.45,8.13-5.86,5-3.59,8.09-5.86Z"/>
    </g>
</g>

我遇到的问题是,屏幕阅读器正在读出 defsstyle 标签中的内容。就这样…… .tp5-1{..... ect,ect...

我做了一些研究,发现我可以将一些参数传递给 @svg() 指令,例如名称、类和其他参数。

所以我的问题是,我可以将什么参数传递给 svg,以阻止屏幕阅读器读出样式标签中的内容,这实际上可能吗?

或者您还有其他建议吗?我认为 SVG 中有一个 title 标签,屏幕阅读器实际上会使用它,但我似乎错了。

I am having an issue with an SVG that i've used, using the @svg() directive in Laravel.

Here is how I am including the svg @svg('trustpilot/5-rating').

Here is the SVG file I am including

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 37.5">
<defs>
    <style>.tp5-1{fill:#00b67a;}.tp5-2{fill:#fff;}</style>
</defs>
<title>Asset 4</title>
<g id="Layer_2" data-name="Layer 2">
    <g id="Layer_1-2" data-name="Layer 1">
        <rect class="tp5-1" width="37.5" height="37.5"/>
        <rect class="tp5-1" x="40.63" width="37.5" height="37.5"/>
        <rect class="tp5-1" x="81.25" width="37.5" height="37.5"/>
        <rect class="tp5-1" x="121.88" width="37.5" height="37.5"/>
        <rect class="tp5-1" x="162.5" width="37.5" height="37.5"/>
        <path class="tp5-2" d="M18.75,25.27l5.7-1.44,2.39,7.34Zm13.12-9.49h-10L18.75,6.33l-3.09,9.45h-10l8.13,5.86-3.09,9.45,8.13-5.86,5-3.59,8.08-5.86Z"/>
        <path class="tp5-2" d="M59.38,25.27l5.7-1.44,2.38,7.34ZM72.5,15.78h-10L59.38,6.33l-3.09,9.45h-10l8.13,5.86-3.09,9.45,8.12-5.86,5-3.59,8.09-5.86Z"/>
        <path class="tp5-2" d="M100,25.27l5.7-1.44,2.39,7.34Zm13.13-9.49h-10L100,6.33l-3.09,9.45h-10L95,21.64l-3.09,9.45L100,25.23l5-3.59,8.09-5.86Z"/>
        <path class="tp5-2" d="M140.62,25.27l5.71-1.44,2.38,7.34Zm13.13-9.49h-10l-3.09-9.45-3.08,9.45h-10l8.12,5.86-3.08,9.45,8.12-5.86,5-3.59,8.09-5.86Z"/>
        <path class="tp5-2" d="M181.25,25.27l5.7-1.44,2.39,7.34Zm13.13-9.49h-10l-3.09-9.45-3.09,9.45h-10l8.13,5.86-3.09,9.45,8.13-5.86,5-3.59,8.09-5.86Z"/>
    </g>
</g>

The issues I am having is, the screen readers are reading out what I have in defs and style tags. So it goes...
.tp5-1{..... ect,ect...

I did some research and I found that I can pass some parameters to the @svg() directive, such as name, class and other parameters.

So my question is, what parameter can I pass to the svg, in order to stop the screen readers read out what I have in the style tag and is that actually possible?

Or do you have any other suggestions? I thought as we have a title tag in the SVG that would actually be used by the screen reader but I seem to be wrong.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

魔法少女 2025-01-17 21:11:18

它说你应该发送选项,你可以

['class' => 'some class']

在你的 @svg 指令中创建类似的东西作为 2. 参数。

在这里您可以阅读更多内容。

另外你的 svg 应该是这样的:

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 37.5">
    <defs>
        <style>.tp5-1{fill:#00b67a;}.tp5-2{fill:#fff;}</style>
    </defs>
    <title>Asset 4</title>
    <g id="Layer_2" data-name="Layer 2">
        <g id="Layer_1-2" data-name="Layer 1">
            <rect class="tp5-1" width="37.5" height="37.5"/>
            <rect class="tp5-1" x="40.63" width="37.5" height="37.5"/>
            <rect class="tp5-1" x="81.25" width="37.5" height="37.5"/>
            <rect class="tp5-1" x="121.88" width="37.5" height="37.5"/>
            <rect class="tp5-1" x="162.5" width="37.5" height="37.5"/>
            <path class="tp5-2" d="M18.75,25.27l5.7-1.44,2.39,7.34Zm13.12-9.49h-10L18.75,6.33l-3.09,9.45h-10l8.13,5.86-3.09,9.45,8.13-5.86,5-3.59,8.08-5.86Z"/>
            <path class="tp5-2" d="M59.38,25.27l5.7-1.44,2.38,7.34ZM72.5,15.78h-10L59.38,6.33l-3.09,9.45h-10l8.13,5.86-3.09,9.45,8.12-5.86,5-3.59,8.09-5.86Z"/>
            <path class="tp5-2" d="M100,25.27l5.7-1.44,2.39,7.34Zm13.13-9.49h-10L100,6.33l-3.09,9.45h-10L95,21.64l-3.09,9.45L100,25.23l5-3.59,8.09-5.86Z"/>
            <path class="tp5-2" d="M140.62,25.27l5.71-1.44,2.38,7.34Zm13.13-9.49h-10l-3.09-9.45-3.08,9.45h-10l8.12,5.86-3.08,9.45,8.12-5.86,5-3.59,8.09-5.86Z"/>
            <path class="tp5-2" d="M181.25,25.27l5.7-1.44,2.39,7.34Zm13.13-9.49h-10l-3.09-9.45-3.09,9.45h-10l8.13,5.86-3.09,9.45,8.13-5.86,5-3.59,8.09-5.86Z"/>
        </g>
    </g>
</svg>

It says you should be sending options, you can make something like

['class' => 'some class']

inside your @svg directive as 2. parameter.

here you can read more.

Also your svg should be like this:

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 37.5">
    <defs>
        <style>.tp5-1{fill:#00b67a;}.tp5-2{fill:#fff;}</style>
    </defs>
    <title>Asset 4</title>
    <g id="Layer_2" data-name="Layer 2">
        <g id="Layer_1-2" data-name="Layer 1">
            <rect class="tp5-1" width="37.5" height="37.5"/>
            <rect class="tp5-1" x="40.63" width="37.5" height="37.5"/>
            <rect class="tp5-1" x="81.25" width="37.5" height="37.5"/>
            <rect class="tp5-1" x="121.88" width="37.5" height="37.5"/>
            <rect class="tp5-1" x="162.5" width="37.5" height="37.5"/>
            <path class="tp5-2" d="M18.75,25.27l5.7-1.44,2.39,7.34Zm13.12-9.49h-10L18.75,6.33l-3.09,9.45h-10l8.13,5.86-3.09,9.45,8.13-5.86,5-3.59,8.08-5.86Z"/>
            <path class="tp5-2" d="M59.38,25.27l5.7-1.44,2.38,7.34ZM72.5,15.78h-10L59.38,6.33l-3.09,9.45h-10l8.13,5.86-3.09,9.45,8.12-5.86,5-3.59,8.09-5.86Z"/>
            <path class="tp5-2" d="M100,25.27l5.7-1.44,2.39,7.34Zm13.13-9.49h-10L100,6.33l-3.09,9.45h-10L95,21.64l-3.09,9.45L100,25.23l5-3.59,8.09-5.86Z"/>
            <path class="tp5-2" d="M140.62,25.27l5.71-1.44,2.38,7.34Zm13.13-9.49h-10l-3.09-9.45-3.08,9.45h-10l8.12,5.86-3.08,9.45,8.12-5.86,5-3.59,8.09-5.86Z"/>
            <path class="tp5-2" d="M181.25,25.27l5.7-1.44,2.39,7.34Zm13.13-9.49h-10l-3.09-9.45-3.09,9.45h-10l8.13,5.86-3.09,9.45,8.13-5.86,5-3.59,8.09-5.86Z"/>
        </g>
    </g>
</svg>
对你的占有欲 2025-01-17 21:11:18

感谢您的帮助。我已经通过给样式标签赋予一个area-hidden=true参数来解决这个问题,这似乎已经解决了这个问题。

它看起来像这样:

<style area-hidden="true">.tp5-1{fill:#00b67a;}.tp5-2{fill:#fff;}</style>

Thank you for your help. I have sorted out the issue by giving the style tag a parameter of area-hidden=true, which seems to have resolved the issue.

It looks like this:

<style area-hidden="true">.tp5-1{fill:#00b67a;}.tp5-2{fill:#fff;}</style>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文