text-align: start/end 是逻辑对齐值,根据 dir 属性动态决定实际方向:ltr 时 start 为左、end 为右,rtl 时相反;直接使用 left/right 会破坏多语言布局一致性且与 dir 冲突导致错位。

title 属性:悬停提示不是 tooltip 替代方案
title 属性值会在鼠标悬停时以浏览器原生方式显示浮动文本,但它**不适用于可访问性关键场景**,也不能替代 aria-label 或 aria-describedby。屏幕阅读器对 title 的支持不一致,部分会忽略,部分仅在焦点元素上读出。
常见误用:
- 给图标按钮只加
title="删除"而不加aria-label—— 键盘用户或盲人用户可能完全不知其功能 - 在
<input>上依赖title提示格式要求(如“请输入邮箱”),但用户不悬停就看不到,且移动端几乎不触发
建议搭配使用:title 仅作轻量补充,核心语义必须靠 aria-* 或显式标签(如 <label for="email"></label>)。
hidden 属性:比 display: none 更语义化,但有渲染边界
hidden 是布尔属性,设为存在即生效(hidden 或 hidden="" 效果相同),它让元素从渲染树中移除,等效于 display: none,但关键区别在于语义和继承行为。
立即学习“前端免费学习笔记(深入)”;
需要注意的点:
- 父元素带
hidden,子元素无法通过hidden="false"恢复显示(该写法无效;hidden不接受false值) - JavaScript 中检查是否隐藏应使用
element.hidden(返回布尔值),而不是查属性是否存在:element.hasAttribute('hidden')在元素被 JS 设置element.hidden = false后仍可能返回true -
<script hidden></script>、<style hidden></style>等无效:某些元素对hidden无意义,浏览器会忽略,但不报错
lang 属性:影响语音合成、拼写检查与搜索引擎分词
lang 告诉浏览器和辅助技术当前内容的语言代码(如 lang="zh-CN"、lang="en"),它不是装饰性属性,直接关系到:
- 屏幕阅读器切换发音引擎(中文用普通话引擎,日文用日语引擎)
- 浏览器内置拼写检查是否启用(
spellcheck="true"依赖lang才能准确定义词典) - 搜索引擎对多语言页面的索引权重分配
典型错误:
- 整个页面
,但某段中文引用没覆盖:<blockquote>「道可道,非常道」</blockquote>→ 应加<blockquote lang="zh-Hans"></blockquote> - 混用非标准值,如
lang="ch"或lang="cn"—— 必须用 BCP 47 标准码,推荐zh-CN(简体中文,中国大陆)或zh-HK(繁体中文,香港)
dir 属性:控制文本流方向,影响表单布局与光标行为
dir 指定文字书写方向,取值为 ltr(left-to-right)或 rtl(right-to-left),它不仅改变文字排列,还联动影响:
- 表单控件中输入框光标起始位置(
dir="rtl"下,<input type="text">光标默认在右侧) - CSS 中
text-align: start/end的实际对齐方向 - 某些 RTL 语言(如阿拉伯语、希伯来语)中数字与拉丁字母混合时的双向算法(BIDI)行为
注意:
- 不要仅靠 CSS 的
direction或unicode-bidi替代dir—— 它们不传递语义,屏幕阅读器无法感知 -
dir可继承,但若父级是ltr,子级含阿拉伯文本,必须显式写<span dir="rtl">السلام عليكم</span>,否则双向文本可能乱序 - React/Vue 等框架中动态设置
dir时,避免用字符串拼接(如dir={isRtl ? 'rtl' : 'ltr'}),应确保属性名真实存在,而非条件渲染属性本身



















