跳至内容

辅助功能选项

辅助功能

现在,随着 Mermaid 库的广泛使用,我们已经开始根据社区的反馈,努力实现更多辅助功能。

添加辅助功能意味着,视觉图表传达的丰富信息可以被使用辅助技术的用户(当然也包括搜索引擎)访问。了解更多关于可访问的富互联网应用程序和 W3 标准。

Mermaid 将自动插入 aria-roledescription,以及图表作者在图表文本中提供的 可访问标题和描述。

aria-roledescription

SVG HTML 元素的 aria-roledescription 设置为图表类型键。(请注意,这可能与图表文本中使用的图表关键字略有不同。)

例如:状态图的图表类型键为“stateDiagram”。这里(部分)显示了自动插入的设置为“stateDiagram”的 aria-roledescription 的 SVG 标签的 HTML。(请注意,为了清晰起见,省略了一些 SVG 属性和 SVG 内容):

html
<svg
  aria-roledescription="stateDiagram"
  class="statediagram"
  xmlns="http://www.w3.org/2000/svg"
  width="100%"
  id="mermaid-1668720491568"
></svg>

可访问标题和描述

所有图表/图表类型都支持可访问的标题和描述。我们尝试为所有图表保持相同的关键字和格式,以便于理解和维护。

可访问的标题和描述将在 SVG 元素中添加<title><desc> 元素,以及 SVG 标签中的 aria-labelledbyaria-describedby 属性。

以下是生成的 HTML,显示 SVG 元素由可访问的标题(id = chart-title-mermaid-1668725057758)标记,并由可访问的描述(id = chart-desc-mermaid-1668725057758)描述;以及可访问的标题元素(文本 = “This is the accessible title”)和可访问的描述元素(文本 = “This is an accessible description”)。

(请注意,为了清晰起见,省略了一些 SVG 属性和 SVG 内容。)

html
<svg
  aria-labelledby="chart-title-mermaid-1668725057758"
  aria-describedby="chart-desc-mermaid-1668725057758"
  xmlns="http://www.w3.org/2000/svg"
  width="100%"
  id="mermaid-1668725057758"
>
  <title id="chart-title-mermaid-1668725057758">This is the accessible title</title>
  <desc id="chart-desc-mermaid-1668725057758">This is an accessible description</desc>
</svg>

语法的详细信息如下。

可访问的标题

可访问的标题 使用 accTitle 关键字 指定,后面跟着一个冒号 (:) 以及标题的字符串值。字符串值以行尾结束。(它只能是一行。)

例如:accTitle: This is a single line title

请参阅 accTitle 和 accDescr 的使用示例,了解如何在图表中使用它以及生成的 HTML。

可访问的描述

可访问的描述可以是一行(一行)或多行。

单行可访问的描述 使用 accDescr 关键字 指定,后面跟着一个冒号 (:),然后是描述的字符串值。

例如:accDescr: This is a single line description.

多行可访问的描述 在 accDescr 关键字后没有冒号 (:),并用花括号 ({}) 括起来。

例如

markdown
accDescr {
This is a multiple line accessible description.
It does not have a colon and is surrounded by curly brackets.
}

请参阅 accTitle 和 accDescr 的使用示例,了解如何在图表中使用它以及生成的 HTML。

accTitle 和 accDescr 的使用示例

  • 具有可访问标题“重大决定”和单行可访问描述“Bob's Burgers 制定重大决定的流程”的流程图

以下是为 SVG 元素生成的 HTML:(请注意,为了清晰起见,省略了一些 SVG 属性和 SVG 内容):

html
<svg
  aria-labelledby="chart-title-mermaid_382ee221"
  aria-describedby="chart-desc-mermaid_382ee221"
  aria-roledescription="flowchart-v2"
  xmlns="http://www.w3.org/2000/svg"
  width="100%"
  id="mermaid_382ee221"
>
  <title id="chart-title-mermaid_382ee221">Big decisions</title>
  <desc id="chart-desc-mermaid_382ee221">Bob's Burgers process for making big decisions</desc>
</svg>
  • 具有可访问标题“Bob's Burger's Making Big Decisions”和多行可访问描述“Bob's Burgers 公司的官方流程,用于制定非常非常重大的决定。这实际上是一个非常简单的流程:确定重大决定,然后做出重大决定。”的流程图

以下是为 SVG 元素生成的 HTML:(请注意,为了清晰起见,省略了一些 SVG 属性和 SVG 内容):

html
<svg
  aria-labelledby="chart-title-mermaid_382ee221"
  aria-describedby="chart-desc-mermaid_382ee221"
  aria-roledescription="flowchart-v2"
  xmlns="http://www.w3.org/2000/svg"
  width="100%"
  id="mermaid_382ee221"
>
  <title id="chart-title-mermaid_382ee221">Big decisions</title>
  <desc id="chart-desc-mermaid_382ee221">
    The official Bob's Burgers corporate processes that are used for making very, very big
    decisions. This is actually a very simple flow: identify the big decision and then make the big
    decision.
  </desc>
</svg>

其他图表类型的示例代码片段

类图
实体关系图
甘特图
Gitgraph
饼图
需求图
时序图
状态图
用户旅程图