在WordPress中,我有一个菜单,其中有6个项目-项目1和项目4没有链接到页面并作为标题,但默认情况下,它们与其他项目一样被标记为role=“link”的可访问性。
如何删除这两个特定li的角色属性?
这是一个UL列表,其中大多数项目都有一个与之关联的URL,但其中两个项目没有。那些没有链接到任何地方,所以它们只是作为其他列表项目的标题。
例如
<ul>
<li>Heading 1<a></a><li>
<li>Link Item 1<a>some link path</a><li>
<li>Link Item 2<a>some link path</a><li>
<li>Link Item 3<a>some link path</a><li>
<li>Heading 2<a></a><li>
<li>Link Item 4<a>some link path</a><li>
<li>Link Item 5<a>some link path</a><li>`
字符串
默认情况下,它们都有aria-role=link,但这对li 1和li 4来说是不正确的,所以我想从它们中删除这个角色。
<li class="emphasize-menu et_pb_menu_page_id-42615 menu-item
menu-item-type-custom menu-item-object-custom menu-item-
42615"><a role="link">CUSTOMERS</a></li>
型
我尝试了以下方法按类选择li项,然后删除该属性,但没有成功。
第一个月
1条答案
按热度按时间relj7zay1#
您尝试的解决方法不起作用,因为
<li>
没有分配任何角色。<a>
子级具有该角色。此外,您不应该使用ID,因为它只适用于一个特定的菜单项。您应该将解决方法更广泛地应用于所有标题菜单项。
字符串
我们可以完全忽略
href
属性是否存在,因为具有href
的a
元素已经具有link
角色。这是一种解决方法,因为在呈现DOM之后再对其进行操作会降低性能,而且不稳定。
一个真实的修复方法是确保后端提供正确的、可缓存的HTML。但要提出这样的解决方案,需要知道所使用的主题,涉及插件和在像Wordpress这样的单体CMS中的覆盖。
剩余可访问性问题
请注意,即使此解决方法修复了角色问题,结构也不能充分表示分组,您可能会失败WCAG Success Criterion 1.3.1: Info and Relationships
下面是一个使分组关系机器可读的示例:
型