开发者工具 · HTML WYSIWYG 编辑器
混乱标记的隐藏成本:可访问性、页面重量和重新设计
· 为什么它很重要
html 辅助功能 文本清理
认为嵌套跨度、内联字体和空段落并不是装饰性的:它们破坏了辅助技术、使页面膨胀并使每次重新设计变得更加困难。
在旧文章上失败的重新设计 - 打开一个新的样式表,该样式表无法覆盖数千个内联样式
重新设计可能会更改每个已批准的标题规则,并且当旧文章包含本地样式和临时包装时,仍然会导致旧文章在视觉上不一致。全局 CSS 无法轻松管理嵌入到整个内容中的表示。 ToolAcre 删除了样式和类属性,暴露了片段对它们的依赖程度。
由此产生的视觉变化是证据,而不是自动迁移计划。删除的类可能已通过应用程序组件提供了必要的含义,而内联字体声明可能是一次性装饰。在对存档应用清理之前,请一起检查源和目标。
“混乱”的实际含义 - 具体定义:冗余包装、内联表示、非语义标签和间距黑客
混乱的标记是具体的:没有语义工作的嵌套跨度、仅用于间距的 div 包装器、遗留的 b 和 i 标签、内联样式、空段落、事件属性和重复的表示片段。字节数本身并不是定义;不必要的或误导性的结构是维护问题。
ToolAcre 解开普通的不受支持的容器,将几个旧的内联标记映射到语义等效项,删除每个元素列表之外的属性并平衡接受的嵌套。它不会检测每个允许的冗余元素。可以保留两个嵌套的强元素,因为它们都是狭义词汇表的有效成员。
辅助功能:屏幕阅读器听到的内容 - 解释缺失的结构和虚假标题如何影响导航
可访问性始于用户代理和辅助工具可以公开的真实结构。粗体段落仍然是段落,而标题元素则进入文档的标题结构。一系列键入的破折号是文本; ul 和 li 提供机器可读的列表关系。
不要夸大确切的公告。辅助技术和用户设置各不相同,并且此存储库不包含跨阅读器测试矩阵。合理的建议是使用适当的元素对含义进行编码,保留逻辑标题顺序,并使用受众所依赖的实际可访问性工具来测试代表性输出。
页面权重和渲染 — 描述臃肿的标记如何增加字节并使布局复杂化
额外的标记添加了传输和解析的字符,但本文没有提供性能阈值或通用渲染惩罚。更直接的成本是复杂性:当同等文章通过不相关的包装器和本地声明表达相同的想法时,调试选择器和迁移变得更加困难。
ToolAcre 对净化后的 HTML 字符进行计数,这可以显示过滤后的减少量,但该计数器不是性能基准。页面速度取决于文档、样式、脚本、媒体、缓存和设备。将较小的源视为可维护性信号,然后在做出性能声明之前测量真实页面。
重新设计和迁移——解释了为什么内联样式和一次性标记抵制全局变化
当重复内容使用稳定的语义和集中表示时,样式表重新设计效果最佳。内联样式可以抵抗全局颜色、间距和版式变化。未知的类名可以将内容绑定到已停用的主题。在周围模板更改很久之后,空块和手动中断仍保留旧的布局假设。
因此,迁移应将含义与表示分开。保留标题级别、段落、列表、引文、代码和有意链接;将批准的外观移至目标样式。编辑器可以帮助检查单个片段,但无法推断站点范围的组件模型或批量更新存储的记录。
工作示例:清理一篇文章 — 获取一篇粘贴的文章,检查其标记并显示具有相同外观的更干净的版本
获取一篇复制的文章,其中包含样式化的 div、假粗体标题、两个段落和手写的破折号项目。过滤会删除 div、style 和 class,但无法知道粗线应变为 h2 还是破折号应变为 li。一个人必须重建这些语义选择。
每次校正后比较视觉结果和源。将假标题替换为选定的标题级别,并将破折号替换为实际列表,然后验证链接方案和段落边界。更干净的版本在沙箱中可能看起来更简单,因为尚未应用目标 CSS。
这不包括自动批量清理、CSS 架构或性能测量
本文没有规定批量清理算法、CSS 架构或性能预算。它也没有声称单靠卫生就能创造可访问的内容。替代文本、语言、链接目的、标题层次结构和编辑清晰度需要标签允许列表之外的信息。
不可信的档案也不应该仅仅因为 ToolAcre 接受了它们的片段而被发布。手写的分词器会警告浏览器解析器差异。根据接收系统的策略使用维护的服务器端清理程序,并与本地绘图分开测试渲染结果。
要点:干净的标记每年都更便宜 - 总结案例以及如何在 ToolAcre 的 HTML WYSIWYG 编辑器中检查输出以防止源头的混乱
出版后每年都更容易理解干净的标记,因为未来的编辑可以识别结构,而无需进行逆向工程演示。即使即时字节减少幅度不大,但通过重新设计、导出和迁移,收益也会增加。
通过在代表输出进入 CMS 之前对其进行检查,从源头防止混乱。使用 ToolAcre 公开和过滤行李,然后在目的地故意提供缺失的语义和样式。在将任何转换扩展到数千之前,请先深入阅读一篇文章。