不会失效,但需主题启用html5支持并正确声明;须唯一且不嵌套于语义标签内;需手动包裹并添加aria-label;IE8兼容需html5shiv、css重置及动态创建标签。

wordPress主题里直接写
会失效吗
不会失效,但多数老主题的index.php或header.php仍用
,浏览器能渲染,只是语义丢失、无障碍支持弱、seo权重略低。关键在主题是否启用HTML5支持——wordpress 3.6+默认开启,但需主题显式声明。
替换
检查当前主题的functions.php是否含:
add_theme_support('html5', array('search-form', 'comment-form', 'comment-list', 'gallery', 'caption'));
若缺失,补上这行;否则
等标签虽能写,但部分WordPress函数(如get_search_form())输出的结构可能不自动适配HTML5语义容器。
替换
为要注意什么
在页面中必须唯一,且不能嵌套在
内。WordPress模板常把误放在
之后却没闭合
,导致dom结构断裂。
- 确保
直接子级是
或
,不是
包装层
- 首页、文章页、分类页都该用同一个
,别在single.php里写——class可加,但标签名不能变
- 如果主题用了bootstrap等框架,其CSS选择器如
.content .row会失效,需同步更新CSS为main .row或保留原有class并叠加语义标签
为什么
里用wp_nav_menu()后屏幕阅读器还是读不出“导航”
因为wp_nav_menu()默认输出纯
,没包裹
,也没加aria-label。必须手动控制输出结构:
立即学习“前端免费学习笔记(深入)”;
重点看'container' => false:避免WordPress自动包一层
为
要注意什么
在页面中必须唯一,且不能嵌套在
内。WordPress模板常把误放在
之后却没闭合
,导致dom结构断裂。
- 确保
直接子级是或
,不是包装层- 首页、文章页、分类页都该用同一个
,别在single.php里写——class可加,但标签名不能变- 如果主题用了bootstrap等框架,其CSS选择器如
.content .row会失效,需同步更新CSS为main .row或保留原有class并叠加语义标签为什么
里用wp_nav_menu()后屏幕阅读器还是读不出“导航”因为
wp_nav_menu()默认输出纯,没包裹
,也没加
aria-label。必须手动控制输出结构:立即学习“前端免费学习笔记(深入)”;
重点看
'container' => false:避免WordPress自动包一层 - 首页、文章页、分类页都该用同一个