如何编写易于访问的技术文档 - 最佳实践与示例

当你为项目或工具编写技术文档时,你会希望它易于访问。这意味着它将为全球网络上的多样化受众提供服务并可用。

网络无障碍旨在使任何人都能访问网络内容。设计师、开发人员和撰写人员有共同的无障碍最佳实践。本文将涵盖一些创建技术内容的最佳实践。

(本文视频讲解:java567.com)

什么是网络无障碍?

网络无障碍是使任何人都能够消费或创建网络内容的实践,无论他们可能面临的健康、经济、地理或语言挑战是什么。

为什么网络无障碍很重要?

在你的项目中应用网络无障碍最佳实践有许多原因。

首先,它将帮助你触及更广泛的受众。当一个可能具有不同能力的人在网络上遇到一些数据 - 比如在你的网站上 - 他们会想要了解更多或使用这些数据。但如果他们无法访问,你将不会感到满意或获得良好的体验。

想象一下有多少人由于在制定产品、网站或工具的决策时没有考虑到他们而无法利用网络。

无障碍的另一个重要方面是它提高了你品牌的质量。通过在你的工作中实施无障碍功能,让人们知道你是一个注重无障碍的人或公司,这表明你希望你的信息对每个人都可用。它还显示了你在工艺上的多才多艺以及你适应时代和趋势变化的能力。

作为个人,应用无障碍最佳实践也会使你受益。对于具有出色无障碍技能的开发人员和设计师,可能会有就业机会。

良好的无障碍实践也意味着良好的SEO实践,这可能会使你的工作更具可见性。

最后,在世界某些国家,法律规定了无障碍要求,并且某些国家已实施了网络无障碍策略。如果你在你的网站和应用中忽视了无障碍功能,可能会带来法律后果。

如何编写易于访问的技术文档

软件工程师在使网络无障碍方面发挥着关键作用。但是在撰写文档时,技术撰写人员也有改善网络无障碍的责任。

技术撰写人员帮助撰写各种类型的内容,如用户指南、教程、API参考、代码文档等。

现在,让我们来看看在技术写作中实施网络无障碍的一些最佳实践。这些策略将有助于改进你的文档,并使其对每个人更加友好和易于访问。

使用清晰的标题和段落

在编写内容时,你应该确保使用标题 - 以及适当的标题层次结构(H1用于页面/文章的标题,H2用于主要标题,H3用于副标题,依此类推)。

此外,请确保将内容分成段落,以便阅读和理解更容易。

当你介绍一个新主题时,使用标题来突出显示。当你在该部分讨论更小的主题时,请使用副标题提醒读者。

标题对于帮助屏幕阅读器理解页面的内容以及如何通过页面进行导航非常重要。因此,请使用标题以便以逻辑方式引导读者浏览文本。

你可以使用井号在Markdown中表示标题。以下是按层次顺序排列的标题示例。

# 使用H1作为页面标题## 使用H2作为主要标题
这个标题是主要内容部分的主要标题。### 使用H3作为副标题
这个标题是更深入探讨主要部分中的一个点的副标题。

使你的内容清晰简洁

总的来说,尽量保持文档中的句子较短。这样可以使它们更容易阅读和理解(对于所有人都是如此)。如果需要,你也可以使用图像或视频提供更多细节。

确保在首次使用任何缩略词时给出完整的含义。此外,始终使用简单的句子,尽量不要使用含糊不清的词语。

下面是一个过于复杂、长句且词汇难度较高的示例:

基于区块链结构的Web3是透明的、安全的、不可改变的和去中心化的,它需要人工智能的过程,它会读取数据、处理和存储信息。

这个版本更好:

Web3建立在区块链透明、安全、不可更改和去中心化的结构之上。它利用人工智能过程来读取、处理和存储信息。

你的内容应包含你要传达的主要观点,消除所有形式的模棱两可。

使用信息丰富的链接文本

你所有的内联链接都应使用清晰、详细和描述性的文本。你可以描述链接的目的或者公司的名称,比如品牌。

链接对于提高页面的排名非常重要。使用“点击这里”或“”之类的链接并不是很有帮助,因为它们并不告诉读者在该链接中会找到什么。

例如,如果我想将W3C(万维网联盟)的无障碍教程链接到本文,我可以使用以下格式:查看W3C为内容撰写人员提供的资源。

为媒体内容添加alt文本和标题

图片

在alt文本属性中添加描述性文本可以让屏幕阅读器读出与图像相关联的alt文本。alt文本还有助于爬行页面的搜索引擎机器知道如何对该内容进行分类。

在添加alt文本时,描述图像的目的而不是图像本身。例如,假设你在关于容器化的部分使用了显示一些运输集装箱的图像。

在这里插入图片描述

在运动中的船上的各种集装箱,用以说明数字集装箱的包装结构和流程。

与其编写像“在运动中的船上的各种集装箱”这样的alt文本,你可以编写“在运动中的船上的各种集装箱,用以说明数字集装箱的包装结构和流程。”

尽管alt文本充当图像的替代品,但标题提供了有关图像的更多细节。你可以使用HTML插入图像标题。Markdown不支持图像标题,但是Markdown文档站点通常有解决方法(例如,通过插件 - ReadTheDocs、MkDocs - 或通过自定义组件插入HTML - Docusaurus)。

举例来说,我将展示如何在Docusaurus中添加图像标题。

在Docusaurus .md文件中添加图像标题的方法:

  • src文件夹中创建一个名为components的文件夹。
  • 创建一个名为figure.jsx的文件。
  • 将以下代码添加到其中:
import React from "react"; 
import useBaseUrl from "@docusaurus/useBaseUrl"; 
export default function Figure({ src, caption }) {return ( <figure> <img src={useBaseUrl(src)} alt={caption} /> <figcaption>{`图: ${caption}`}</figcaption> </figure> ); 
} 
  • 转到包含图像的.md文件并导入代码。
import Figure from '@site/src/components/figure'; 
import figure1 from 'path-to-image';
  • 将其添加到文件中。
<Figure caption="这是图像的标题" alt="这是alt文本" src={figure1} />

图像现在将显示带有标题。

在这里插入图片描述
图像标题的屏幕截图示例

视频

要为视频添加标题,HTML是一个很好的选择。但如果你使用markdown,你可以使用<iframe>标签嵌入来自YouTube和Vimeo的视频。这些应用程序提供内置的标题支持,因此你可以在添加嵌入代码之前启用标题。

你还可以安装第三方插件来实现这个目的。

另一个提示是:避免在视频中闪烁内容,因为这可能会引发癫痫发作。如果你的视频有闪烁的明亮颜色,请确保其在一秒内不超过两次。

为音频和视频添加文字稿

向音频和视频内容添加文字稿是一个好主意。并不是每个人都想要观看或听取内容。但他们可能会好奇知道内容是什么。

通过添加文字稿,你使任何人都能更轻松地浏览内容并获取他们所需的信息。

音频的文字稿

对于音频内容,你可以使用HTML插入文字稿。以下是一个示例:

<audio controls muted><!--总是将你的音频设置为静音--> <source src="ringtone.mp3" type="audio/mpeg"></source> 
</audio> 
<code> <p>这是文本的转录</p> 00:03 = 我今天要很有成效<br><br> 00:05 = 我今天要很有成效<br><br> 00:08 = 我今天要很有成效<br><br> 00:10 = 我今天需要很有成效<br><br> 00:11 = 我今天必须很有成效<br><br> 00:13 = 我今天应该很有成效<br><br> 00:16 = 我今天要很有成效<br><br> 00:18 = 我今天应该很有成效<br><br> 00:21 = 我今天必须很有成效<br><br> 00:23 = 生产力对我很重要 <br><br> 
</code> 

对于像Docusaurus这样的Markdown文档站点,你可以创建一个自定义组件。

  • 在你的src/components文件夹中,创建一个名为transcript.jsx的文件。
  • 插入以下代码:
import React, { useState } from 'react'; 
export default function Transcript({ }) { const [showTranscript, setShowTranscript] = useState(false); const toggleTranscript = () => { setShowTranscript(!showTranscript); }; return ( <div> <a href="#" onClick={toggleTranscript}> { showTranscript ? '隐藏文本稿' : '查看文本稿'} </a> {showTranscript && ( <div id="transcriptText"> (插入你的文字稿文本) </div> )} </div> ); 
}
  • 转到你的markdown文件并导入它。
import Transcript from '@site/src/components/transcript'; <Transcript />

在这里插入图片描述
音频文字稿输出的屏幕截图

注意: 我对代码进行了一些调整,使文本稿的显示是可选的。如果希望页面加载时显示文字稿,可以进行编辑。

视频的文字稿

对于视频,YouTube是一个很好的选择。它为您的视频提供了内置的文字稿。因此,您可以随时在文档中嵌入YouTube视频。

文字稿在主要详情之后的视频描述中。当您单击“显示文字稿”按钮时,文字稿将显示时间戳。

添加代码片段并使用颜色对比技术

如何添加代码片段

使用代码块来解释代码而不是图像。你还可以使用代码片段来展示代码的输出。除非必须添加图像,否则应该使用代码片段。

例如,

index.html
<!DOCTYPE html> 
<html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>一个计算器应用程序</title> <link rel="stylesheet" href="styles.css"/> </head> <body> </body> 
</html>

这将使屏幕阅读器能够阅读代码,而屏幕阅读器无法读取屏幕截图。

在这里插入图片描述
上传上述代码的屏幕截图

颜色对比技术

颜色对比技术意味着使用相反或强烈对比的颜色。

例如,使用黑色文字在白色背景上具有高对比度,而使用浅棕色文字在棕色背景上则没有。

在组合颜色时,你可以使用可访问的颜色调色板,如Color Safe。

在这里插入图片描述
从Color Safe获取的在绿色背景上使用淡白色的颜色

添加翻译选项

有些文档站点提供翻译选项,你可以在多种语言中构建你的文档,像Jekyll这样的网站。以下是一个示例。

Docusaurus也是另一个提供使用Crowdin或Git进行多语言选项的文档站点。

  • 按照此指南设置Docusaurus的Git翻译和本地化。
  • 按照此指南设置Docusaurus的Crowdin翻译和本地化。‌

使用无障碍测试工具

有些工具可以用来检查文档中的无障碍错误。一些示例是WAVE(Web无障碍评估工具)和AXE(无障碍引擎)。

此外,你可以获取NVDA(非视觉桌面访问)屏幕阅读器来测试你的内容。这款软件会告诉你使用屏幕阅读器的用户如何感知你文档的内容。‌

设置改进或建议框

最后,可能无法满足每个用户的需求。因此,你可以添加一个建议或改进框,允许用户发送关于如何进一步改进内容的反馈。直接从用户那里听到反馈可以帮助你了解如何最好地使文档对他们无障碍。

要添加改进框,你可以使用一个存储用户输入的外部表单链接,或者你可以在文档中设置建议框。

如何在Docusaurus中添加外部表单链接

你需要创建一个自定义组件。

  • 进入src/components文件夹并创建一个名为feedback.jsx的文件。
  • 添加以下代码:
import React from 'react'; export default function FeedbackButton({ href }) {return ( <a href={href} target="_blank" rel="noopener noreferrer" > 给予反馈 </a> ); 
}; 
  • 在你的markdown文件中导入它:
import FeedbackButton from '@site/src/components/feedbackbutton';
  • 插入链接:
<FeedbackButton href="https://forms.google.com" /> 

当你在文档中运行它时,它应该展示一个指向Google表单的链接。Google Forms是一个示例,你可以添加链接到你公司的网站或服务器。这是它的样子:

在这里插入图片描述
一个用于文档建议的反馈链接

总结

要遵循和实施这些无障碍最佳实践,你可以考虑创建或使用一个已经制定好的样式指南。这可以帮助你持续地实施这些实践,并使你和团队中的其他技术撰写人员更容易地做到这一点。

(本文视频讲解:java567.com)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/309135.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Arthas实战教程:定位Java应用CPU过高与线程死锁

引言 在Java应用开发中&#xff0c;我们可能会遇到CPU占用过高和线程死锁的问题。本文将介绍如何使用Arthas工具快速定位这些问题。 准备工作 首先&#xff0c;我们创建一个简单的Java应用&#xff0c;模拟CPU过高和线程死锁的情况。在这个示例中&#xff0c;我们将编写一个…

连接两部VR头显的type-c DP分配器方案,可以给主机设备PD反向供电与两部VR同时供电。

随着type-c的发展&#xff0c;目前越来越多的设备都在使用type-c作为连接的接口&#xff0c; 不仅是笔记本与手机在使用现在的游戏主机如&#xff08;任天堂&#xff0c;steam&#xff0c;&#xff09;或者是VR的一体机或者是VR头显也都在使用type-c作为连接接口。 type-c接口…

卷积学习笔记——一文直观形象弄懂

在神经网络的世界中,卷积操作犹如一个神秘的魔术师,它以一种精巧的方式提取出图像、声音等数据中的关键特征,为神经网络模型赋能。但究竟什么是卷积?我们一探究竟。 卷积(Convolution)本质上是一种数学运算操作,它可以用极简的数学形式漂亮地描述一个动态过程。我们可以用形象…

3D开发工具HOOPS:推动汽车行业CAD可视化发展

在最近的行业对话中&#xff0c;Tech Soft 3D&#xff08;HOOPS厂商&#xff09;的Jonathan Girroir和Actify的Peter West探讨了CAD可视化在当代企业中的重要性和挑战。作为CAD可视化领域的佼佼者&#xff0c;Actify通过其广受欢迎的Spinfire应用&#xff0c;赋能了全球40多个国…

10.哀家要长脑子了!

1. 704. 二分查找 - 力扣&#xff08;LeetCode&#xff09; 哎哟 我去 我还以为你都搞懂了 呵呵 当时问题出现在右边界初始化 左闭右开 右边界是取不到的 int left 0, right nums.size() ; while(left < right) { int mid left (right - left) / 2; if( target > …

【随笔】Git 基础篇 -- 远程仓库 git clone(二十五)

&#x1f48c; 所属专栏&#xff1a;【Git】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &#x1f496; 欢迎大…

【复习笔记】FreeRTOS(六) 队列操作

本文是FreeRTOS复习笔记的第六节&#xff0c;队列操作。 上一篇文章&#xff1a; 【复习笔记】reeRTOS(四) 列表项的插入和删除 文章目录 1.队列操作1.1.队列操作过程1.2.队列操作常用的API函数 二、实验设计三、测试例程四、实验效果 1.队列操作 队列是为了任务与任务、任务与…

IP地址的主要功能及其在网络中的重要性

在当今数字化时代&#xff0c;互联网已经成为人们生活和工作中不可或缺的一部分。而IP地址&#xff08;Internet Protocol Address&#xff09;作为互联网中的关键组成部分&#xff0c;发挥着至关重要的作用。本文将探讨IP地址的主要功能以及其在网络中的重要性。 IP地址查询&…

Xcode 15.0 新 #Preview 预览让 SwiftUI 界面调试更加悠然自得

概览 从 Xcode 15 开始&#xff0c;苹果推出了新的 #Preview 宏预览机制&#xff0c;它无论从语法还是灵活性上都远远超过之前的预览方式。#Preview 不但可以实时预览 SwiftUI 视图&#xff0c;而且对 UIKit 的界面预览也是信手拈来。 想学习新 #Preview 预览的一些超实用调试…

【GEE实践应用】按照字段提取想要的研究区域

有的时候&#xff0c;我们在GEE中加载研究区域时&#xff0c;我们现有的矢量数据可能不止自己想要的研究区域的范围&#xff0c;这个时候&#xff0c;为了避免在ArcGIS中重新导出打包上传等操作&#xff0c;我们可以在GEE中按照字段进行选择我们想要的研究区域。下面是操作实例…

杰发科技AC7840——CAN通信简介(4)_过滤器设置

0. 简介 注意&#xff1a;过滤器最高三位用不到&#xff0c;因此最高位随意设置不影响过滤器。 1. 代码分析 注意设置过滤器数量 解释的有点看不懂 详细解释...也看不大懂 Mask的第0位是0&#xff0c;其他位都是1(就是F?)&#xff0c;那就指定了接收值就是这个数&#xff0c;…

ASP.NET Core 标识(Identity)框架系列(二):使用标识(Identity)框架生成 JWT Token

前言 JWT&#xff08;JSON Web Token&#xff09;是一种开放标准&#xff08;RFC 7519&#xff09;&#xff0c;用于在网络上以 JSON 对象的形式安全地传输信息。 JWT 通常用于在用户和服务器之间传递身份验证信息&#xff0c;以便在用户进行跨域访问时进行身份验证。 JWT 由…

matlab 安装 mingw64(6.3.0),OPENEXR

matlab安装openexr 1. matlab版本与对应的mingw版本选择2. mingw&#xff08;6.3.0&#xff09;下载地址&#xff1a;3. matlab2020a配置mingw&#xff08;6.3.0&#xff09;流程“4. matlab 安装openexr方法一&#xff1a;更新matlab版本方法二&#xff1a;其他博文方法方法三…

MySQL——链表

主键&#xff1a;非空 唯一&#xff08;针对整列数据而言&#xff09; 为了方便管理一般主键都是设置为自增 外键&#xff1a;一张表中的一列的值是另一张表的主键&#xff0c;使用外键建立两张数据表的数据关系 一、两张表连接 将两张表格拼接成一个表 1、格式&#xff1a;s…

爬虫 | 网易新闻热点数据的获取与保存

Hi&#xff0c;大家好&#xff0c;我是半亩花海。本项目是一个简单的网络爬虫&#xff0c;用于从网易新闻的热点新闻列表中提取标题和对应的链接&#xff0c;并将提取到的数据保存到一个 CSV 文件中。 目录 一、技术栈 二、功能说明 三、注意事项 四、代码解析 1. 导入所需…

【C++进阶】RAII思想&智能指针

智能指针 一&#xff0c;为什么要用智能指针&#xff08;内存泄漏问题&#xff09;内存泄漏 二&#xff0c;智能指针的原理2.1 RAII思想2.2 C智能指针发展历史 三&#xff0c;更靠谱的shared_ptr3.1 引用计数3.2 循环引用3.3 定制删除器 四&#xff0c;总结 上一节我们在讲抛异…

PostgreSQL入门到实战-第二十九弹

PostgreSQL入门到实战 PostgreSQL中数据分组操作(四)官网地址PostgreSQL概述PostgreSQL中CUBE命令理论PostgreSQL中CUBE命令实战更新计划 PostgreSQL中数据分组操作(四) 如何使用PostgreSQL CUBE生成多个分组集 官网地址 声明: 由于操作系统, 版本更新等原因, 文章所列内容不…

InternlM2

第一次作业 基础作业 进阶作业 1. hugging face下载 2. 部署 首先&#xff0c;从github上git clone仓库 https://github.com/InternLM/InternLM-XComposer.git然后里面的指引安装环境

【Golang学习笔记】从零开始搭建一个Web框架(二)

文章目录 模块化路由前缀树路由 前情提示&#xff1a; 【Golang学习笔记】从零开始搭建一个Web框架&#xff08;一&#xff09;-CSDN博客 模块化路由 路由在kilon.go文件中导致路由和引擎交织在一起&#xff0c;如果要实现路由功能的拓展增强&#xff0c;那将会非常麻烦&…

[尚硅谷flink] 检查点笔记

在Flink中&#xff0c;有一套完整的容错机制来保证故障后的恢复&#xff0c;其中最重要的就是检查点。 文章目录 11.1 检查点11.1.1 检查点的保存1&#xff09;周期性的触发保存2&#xff09;保存的时间点3&#xff09;保存的具体流程 11.1.2 从检查点恢复状态11.1.3 检查点算法…