语言支持索引

W3C 小组草案说明

关于本文档的更多详细信息
此版本:
https://www.w3.org/TR/2024/DNOTE-typography-20241115/
最新发布版本:
https://www.w3.org/TR/typography/
最新编辑草案:
https://w3c.github.io/typography/
历史记录:
https://www.w3.org/standards/history/typography/
提交历史
编辑:
Richard IshidaW3C
反馈:
GitHub w3c/typography拉取请求新建议题未解决议题

摘要

本文档为浏览器实现者和规范开发者指向有关如何支持世界各地文字或书写系统的排版特性的信息, 并且还指向规范中的相关信息、测试以及有用的文章和论文。它并非详尽无遗,并会不时增补。

本文档状态

本节描述的是本文档在发布时的状态。当前 W3C 出版物列表以及本技术报告的最新修订版可在 W3C 技术报告索引中找到,网址为 https://www.w3.org/TR/。

本文档中的信息有助于将用户和开发者联系起来,以便浏览器能更好地支持世界各地的排版需求。 预计本文档会随着新材料的出现或被我们注意到而不断更新。

本文档由国际化工作组作为 一份小组草案说明,使用 说明轨道发布。

小组草案说明未获得 W3C 或其成员的认可。

这是一份草案文档,可能随时被其他文档更新、替换或废弃。 除作为进行中的工作外,不宜引用本文档。

W3C 专利 政策 不对本文档附带任何许可要求或承诺。

本文档受 2023年11月03日 W3C 流程文档约束。

1. 引言

W3C 和浏览器实现者需要确保世界各地文字和语言的 文本布局及排版需求被内置到 HTML、CSS、SVG 等技术中,从而使网页和电子书能按照用户期望的方式呈现和运行。

为此,世界各地的专家正在讨论并记录布局和排版需求,以及当前浏览器和电子书 阅读器所支持的内容与实际所需内容之间的差距。(请参见由 W3C 国际化小组支持的该领域相关工作 列表。)

本页面为浏览器实现者和规范开发者指向与支持世界各地文字或书写系统特性相关的信息。 它并非详尽无遗,并会不时增补。

文字资源链接指向的页面会链接到如下详细信息:

  1. 一组特性的需求
  2. 关于文字如何工作的信息请求
  3. 与相关语言支持仓库中该文字特性相关的讨论
  4. W3C 工作组中与该文字相关的规范议题和讨论
  5. 与该文字具有的各种特性相关的测试
  6. 该文字的差距分析报告。
  7. 与语言支持主题相关的规范链接

特此征集更多信息和参考资料; 请使用 github 议题列表 建议增补、澄清、修正及其他改进。 

2. 文本方向

2.1 书写模式

文本在一行中以及跨页面时沿什么方向流动? (如果基本方向是从右到左,请参见 2.2 双向 文本。)如果该文字使用竖排文本,有哪些需求?如果将竖排文本与通常只横排的文字混合使用,又如何? 是否需要一个开关,以便在竖排与横排文本中使用不同字符?浏览器是否按预期支持竖排中的短横排 文本(日本语中的 tate-chu-yoko)?字符方向和字符的方向性排序是否按需要得到支持?

2.2 双向文本

如果一般的行内方向是从右到左, 处理时是否存在任何问题?当文本的行内方向混合时,这种双向文本是否得到充分支持? 数字和表达式又如何?Unicode 双向控制字符和 HTML 标记是否提供了所需支持? 方向性片段的隔离是否存在问题?

3. 字形塑形与定位

3.1 字体与字体样式

字体如何被归入可识别的书写 样式?每种书写样式如何使用?浏览器中使用的标准回退字体(例如 serif、 sans-serif、cursive 等)是否符合预期?或者是否需要额外的通用字体样式?此文字是否需要目前不可用的特殊 字体或 OpenType 特性?还会出现哪些其他一般性的字体相关问题?这里描述的字体样式是指替代性的书写样式类型, 例如 naskh 与 nastaliq;关于倾斜、斜体和字重,请改见 3.4 字母形态 倾斜、字重与斜体

3.2 基于上下文的塑形与 定位

如果需要上下文敏感渲染支持来 塑造字母组合或将某些字形相对于其他字形定位,这方面是否得到充分提供? 相关文字是否需要额外的用户控制特性,以支持对字形位置或形状的改变,例如调整基底文本与变音符号之间的距离, 或以系统化方式改变所使用的字形?是否需要能够组合/分解合字或连字,或显示原本隐藏的字符等? 如果文本是连写体,请参见单独的 章节 3.3 连写文本

3.3 连写文本

如果该文字是连写体(即字母通常 连在一起,如阿拉伯文、恩科文、叙利亚文等),在处理连写文本方面是否存在问题或所需特性? 如果单词的一部分被标记或设置样式,连写连接是否会断开?Unicode 连接符和非连接符字符的行为是否符合预期?

3.4 字母形态倾斜、字重 与斜体

本节涵盖对一段文本的字形进行修改的方式, 例如斜体化、加粗、倾斜等。斜体化、加粗、倾斜等是否相关?斜体字体是否向正确方向倾斜? 合成的斜体化或倾斜是否存在问题?是否还有其他与加粗或斜体化相关的问题——也许与对适用性的 泛化假设有关?关于替代性书写/字体样式,请参见 3.1 字体与字体 样式

3.5 大小写与其他字符 变换

你的文字是否需要尚未支持的特殊文本变换? 例如,是否需要在半角与全角呈现形式之间转换?你的文字是否会根据排版需求将字母转换为大写、 首字母大写和小写形式?其他变换又如何?

4. 排版单位

4.1 字符与编码

大多数语言现在都已由 Unicode 支持,但 仍偶尔会出现问题。特别是,可能存在与字符排序、竞争性编码(如缅甸文),或变体选择符标准化、 编码模型(如蒙古文)相关的问题。是否存在阻碍在 Web 上使用此文字的字符集问题? 变体选择符是否需要关注?是否还有其他与编码相关的问题?

4.2 字素/词 分段与选择

本节涉及文本如何被划分为 字素、词、句子等,以及与之相关的行为。对于以下操作是否有特殊需求:向前/向后删除、 光标移动与选择、字符计数、搜索与匹配、文本插入、换行、两端对齐、大小写转换、 排序?词是否由空格或其他字符分隔?双击或三击文本时是否有特殊需求?词是否会断词? (这些问题的一些答案可能会在其他章节中涉及,例如 6.1 换 行,或 6.7 首字母样式。)

5. 标点与行内特性

5.1 短语与章节边界

哪些字符用于表示 短语、句子和章节的边界?其他标点如何处理,例如破折号、 连接符、分隔符等?是否存在与标点或文本与标点之间的交互相关的特定问题 (例如,与前文分开的标点不得单独换到下一行)?是否存在与括注信息或标示 专有名词等内容相关的问题?其中一些主题有自己的章节;另请参见 5.2 引文与引用,以及 5.4 缩写、省略号与重复

5.2 引文与引用

这是短语与章节 边界的一个子主题,值得单独处理。哪些字符用于表示引文?引文中的引文是否使用不同字符? 哪些字符用于表示对话?是否使用相同机制来引用词语,或用于惊吓引号等? 引用书名或文章名又如何?处理引号时是否存在任何问题,尤其是在嵌套时? 块引文是否应缩进或以特殊方式处理?引号是否适当地考虑文本方向?

5.3 强调与高亮

如何实现强调和高亮?如果 在文本旁边、上方或穿过文本绘制线条或标记,它们是否需要与文本本身保持特殊距离? 下划线等是否需要跳过某些字符?竖排文本中情况会如何变化?

5.4 缩写、省略号与 重复

使用哪些字符或其他方法来表示 缩写、省略号与重复?是否存在问题?

5.5 行内注释与标注

若有的话,使用哪些机制来创建 *行内*注释和标注?此文字是否支持适当的行内标注方法? ruby 规范目前规定了一个初始需求子集,用于微调东亚文本的 语音和语义标注的排版,包括振假名、拼音和 注音符号系统。它对于自身目标而言是否充分?未来还需要哪些其他控制? 其他类型的行内标注如何,例如割注?本节处理 行内标注方法。对于文本中的标记指向 文档另一部分的标注方法,请参见 7.3 脚注、尾注等

5.6 其他文本装饰 与行内特性

本节是前面各节无法归入的行内 特性的统括章节。它也可用于在一处描述与行内特性相关的一组 通用需求,当这些特性出现在上述多个章节中时尤其如此。它涵盖用于传达 一段文本相关信息的字符或方法(例如文本装饰)。是否可使用所有所需的文本高亮或标记形式, 例如波浪下划线、数字上横线等?如果在文本旁边、上方或穿过文本绘制线条, 它们是否需要与文本本身保持特殊距离?下划线等是否需要跳过某些字符? 竖排文本中情况会如何变化?是否还有前面各节未涵盖的其他标点符号? 线条是否能相对于竖排文本正确绘制?

5.7 数据格式与数字

这里相关的是与数字、 货币、日期、个人姓名、地址等有关的格式。如果该文字有自己的一组数字 字符,它们的使用方式是否存在任何问题?该文字或语言是否使用会带来问题的特殊格式 模式(例如印度的 12,34,000)?日期/时间格式和选择又如何——并且 是否需要非公历历法?百分号及其他与数字相关的符号是否正常工作, 数字是否需要特殊装饰(例如埃塞俄比亚文或叙利亚文中)?网页中 个人姓名、地址等的管理又如何:是否存在问题?

6. 行与段落

6.1 换行

浏览器是否掌握了 当你的文字到达行末时文本换行方式的规则?换行是一次换整个“词”, 还是按字符,或者其他方式(例如藏文和爪哇文中的音节)?哪些字符 不应出现在行尾或行首,应采取什么措施来防止这种情况?你的文字是否使用断字, 或使用其他方式?如果使用断字,它是否按预期工作?(注意,本节 讨论的是文本换行时的行尾断字,而不是将连字符及相关字符作为标点符号使用。)

6.2 断字

6.1 换行

6.3 文本对齐与 两端对齐

当段落中的文本需要两侧 都齐边时,它是否遵循你的文字的规则?该文字是否需要辅助以符合网格模式? 你的文字是否允许标点悬挂在文本框行首或行末之外?当需要调整以使一行齐边时, 如何完成?是否收缩/拉伸词间和/或字母间空格?词基线是否会被拉伸,如阿拉伯文中那样? 段落缩进如何,或者是否需要逻辑对齐关键字,例如 start/end,而不是 left/right?该文字是否缩进段落的首行?

6.4 文本间距

本节关注一行中字符周围和字符之间的 间距调整,其方式不同于为使文本适配给定宽度所作的尝试(即两端对齐)。某些文字通过拉开词、 字母或词中音节的间距来产生强调或其他效果。此文字/语言是否有未受支持的需求? 如果需要在字母和数字之间应用间距,是否可行?与标点相关的空格如何, 例如法语中冒号前的间隙?(关于两端对齐相关的间距,请参见 6.3 文本对齐与两端对齐。)

6.5 基线、行高等

浏览器是否支持混合文字之间以及一般情况下 的基线对齐需求?是否存在与行高或行间距等相关的问题? 竖排文本中的基线或行高需求是否已涵盖?

6.6 列表、计数器等

是否使用列表或其他计数器样式?如果使用, 其格式是什么,是否可以实现?列表计数器之后是否有正确的分隔符可用? 是否还有其他与计数器和列表相关的方面需要处理?列表计数器在竖排文本中是否处理正确?

6.7 首字母样式

浏览器或电子阅读器是否正确处理 一行或一段开头字母的特殊样式,例如首字下沉或类似效果?大字母与旁边各行之间的大小关系如何? 大字母相对于旁边各行锚定在什么位置?是否通常将开头引号包括在大字母中? 这个大字母实际上是否是一个音节?等等。所有这些是否都按预期工作?

7. 布局与页面

7.1 常规页面布局与 推进

主要文本区域和辅助区域 如何定位和定义?这里是否有任何特殊需求,例如日本语 kihon hanmen 的按字符计量的尺寸? 对于从右到左阅读的文字,书籍封面位于书脊右侧,而不是左侧。是否对此提供支持? 当内容可以竖向并向左或向右流动时,如何指定对象、文本等相对于流的 位置?例如,对于用英语书写的页面和用阿拉伯语书写的页面,关键字 “left”和“right”很可能需要反转。表格和网格布局是否按预期工作? 竖排文本中的多栏如何工作?是否可以正确混合竖排和横排文本块? 文本是否按预期方向滚动?属于这里的其他主题包括对打印 标记、目录和索引等内容的任何本地需求。另请参见 7.2 网格与 表格

7.2 网格与表格

作为页面布局的子主题,该文字 对字符网格或表格是否有特殊需求?

7.3 脚注、尾注等

你的文字是否有脚注、尾注或 其他此类必要标注的特殊需求,以满足你的文化所需的方式?(关于纯行内标注, 例如 ruby 或割注,请参见 5.5 行内注释与标注。 本节更多关注将引用标记与注释内容分开的标注系统。)

7.4 页面页眉、页脚等

页码编号或 活动页眉等的处理方式是否有特殊惯例?

7.5 表单与用户交互

竖排表单控件是否得到良好支持?在 从右到左的文字中,是否可以为表单字段设置基本方向?滚动条是否位于 正确的一侧?等等。是否还有其他与用户交互相关的方面需要处理?

8. 自上次发布 版本以来的变更

自本文档上次发布到 TR 空间以来,已作出以下变更:

更多详细信息请参见 github 提交日志