View in English

  • 打开菜单 关闭菜单
  • Apple Developer
搜索
关闭搜索
  • Apple Developer
  • 新闻
  • 探索
  • 设计
  • 开发
  • 分发
  • 支持
  • 账户
在“”范围内搜索。

快捷链接

5 快捷链接

视频

打开菜单 关闭菜单
  • 专题
  • 相关主题
  • 所有视频
  • 关于

返回 WWDC19

大多数浏览器和
Developer App 均支持流媒体播放。

  • 简介
  • 转写文稿
  • 打造辅助阅读体验

    文本的样式和布局是出色阅读体验的标志性特点。CoreText 和 TextKit 等技术为您提供了创建出色文本布局所需的工具。了解如何通过采用辅助功能阅读内容协议、添加自动翻页和自定语音输出,为旁白打造同样出色的辅助体验。

    资源

      • 高清视频
      • 标清视频
    • 演示幻灯片 (PDF)

    相关视频

    WWDC20

    • 在你的 app 中创造无缝语音体验
  • 搜索此视频…

    (创建一个良好的辅助阅读体验) 大家好 欢迎大家参加 创建一个良好的辅助阅读体验 我是Darren Minifie 我是Accessibility 团队的项目工程管理人员

    一个优秀的app的特质之一是 体验优秀的用户界面 它涉及到布局设计和字体 特别是那些以长篇阅读 为主要功能的app 实现一个自定义的文字布局 你经常需要使用一些低水平的技术 比如Core Text 和TextKit 本次演讲 你将会了解 你需要知道的API和技术 来为旁白创建一个 良好的辅助阅读体验

    (阅读内容协议 自定义朗诵) 首先 我们来聊一下阅读内容协议 使用本协议 来让你的文字内容更易获取 下面 我们来讲一下自动翻页 在你的app中 使用旁白来翻页 最后 我们将会讨论 你能使用的API 来自定义旁白朗诵你的内容的方式

    本次演讲 我们将会使用如下app案例 来介绍你需要知道的技术

    这是一个基于页面设计的简单app 每个页面都包含一张图片 一个标题 一个副标题 和一些详细的文字

    为了让你的app更易被获取 你需要先使用旁白进行试听

    最方便的方法是 在你的辅助捷径中加入旁白 先打开设置 点击访问 向下滚动至访问捷径 然后点击旁白 现在 根据设备的不同 你需要点击主画面按钮 或是侧边按钮三次 来快速启用和禁用旁白

    我们来看一下旁白 是如何在示例app中使用的

    旁白开启

    当我用手在屏幕上拖动时 旁白有一个音效反馈 告诉我这里没有内容 要让我们的文本阅读辅助

    我们要做的第一件事是 使用 UIAccessibilityReadingContent协议 这个协议包含4个核心的方法

    AccessibilityLineNumber(forpoint 索要返回触摸点的所在行数 AccessibilityContent(forLineNumber 以及accessibilityFrame(forLineNumber 分别索要返回某行的 文字内容和行的高宽 最后 accessibilityPageContent 向你索要返回 整个页面有用的内容

    现在我们来看一下 如何在我们的app实现 UIAccessibilityReadingContent协议

    示例app的每个页面 都是SessionItemView 的一个实例

    这个视图有4个子视图 一个图像视图 一个标题标签 一个标识符标签 以及一个会话详情视图

    我们额外声明了一个layout枚举 这会帮助我们 实现相应的方法

    第一件我们要做的事情是 通过在页面视图的初始化配置 isAccessibilityElement为true 将我们的页面视图 设成一个辅助元素

    接下来 我们开始实现 阅读内容协议 第一个函数是 accessibilityLineNumber(forpoint

    首先 我们使用过去的行数 执行hitTest方法

    如果最终的视图是 我们已知的子视图之一 我们会映射到相应的layout枚举值 最后 我们返回rawValue 这是旁白能理解的描述

    接着 实现 AccessibilityContent(forLineNumber方法 首先 初始化一个layout枚举实例 使用switch函数将值 映射到相应的我们已知的子视图 最后我们返回accessibilityLabel 就是返回子视图的文字

    accessibilityFrame(forLineNumber 方法的实现非常简单 首先 使用我们已知的rawValue 初始化一个layout枚举实例 使用switch函数将值 映射到相应的我们已知的子视图 最后 我们返回accessibilityFrame 它表示了一行的宽和高

    最后 我们来实现 accessibilityPageContent方法 我们从我们已知的子视图 收集文字内容 然后已单个字符串的形式返回

    完成了阅读内容协议 我们来看下如何 在app内使用旁白

    可获取的拖放 演讲241 拖放是一个强大的API 它允许app分享和交互数据 这一次 我在屏幕中拖动我的手指 旁白朗诵并 高亮了相应的文字内容

    下面 我们来讲一下自动翻页 当旁白的 阅读全部命令被触发了 旁白将会从头到尾 朗诵所有的文字内容 旁白这是就可能需要 在你的app中自动翻页 实现自动翻页的方法 你需要知道两个 accessibility API 首先 你应该在你的页面视图使用 causesPageTurn辅助特征方法 第二 你应该实现 AccessibilityScroll控制方向的方法 旁白就能 在你的app里自动翻页了 我们来看一下如何 在我们的app实现自动翻页的功能

    首先 我们需要实现 causesPageTurn辅助特征方法 我们在页面视图的初始化函数中 配置辅助特征

    接下来 我们实现 accessibilityScroll和direction 我们根据 direction参数不同 对应到switch的 相应事件来处理 如果direction的值是 上一个或者左 我们让代理返回到前一页 如果成功的话 我们会向旁白发送一则 pageScrolled消息

    如果direction的值 是右或下一个 我们让代理翻到下一页 如果成功的话 我们会向旁白发送一则 pageScrolled消息

    我们来看一下app 是如何实现自动翻页功能的

    可获取的拖放 演讲241 拖拽是一个强大的API 它允许app之间分享和交流数据 不论你决定如何在app实现 拖拽的动作 有一个帮有需要的用户操作的方法 学习我们为iOS设计的 易用拖拽功能的更多细节

    AVSpeechSynthesizer 让iOS说话 演讲236

    我们最后一个主题是自定义演讲 你可能需要控制app内 旁白朗诵内容的方式 你需要使用2个阅读内容协议 的替代方法来实现 这些方法会返回 NSAttributedStrings 而不是简单的字符 通过支持合适的辅助属性 你能对旁白朗读你的内容 的方式进行各种细节控制

    比如 你可能需要用另一种语言 来朗诵某个段落 这时 你就需要使用 accessibilitySpeechLanguage属性 和相应语言的识别 这时 旁白会使用最适合 的语言来朗诵你的文字

    巴黎凯旋门

    更进一步 你可能想更深入了解如何 控制旁白朗诵你的内容 我们来看下实现步骤 你可以使用IPA和 accessibilitySpeechIPANotation 属性来描述你的文章 约塞米蒂国家公园

    所以 想要用旁白 创建良好的阅读体验 你的文字内容需要让用户可以获取 你需要遵循 UIAccessibilityReadingContent协议 接下来 是自动翻页功能 这样旁白就能 从头到尾 朗诵你app的所有内容了 最后 为了控制旁白 朗诵你内容的方式 你可以考虑使用 阅读内容协议中的 NS属性的strings版本 的方法 并支持最合适的 accessibility属性

    想要了解这个话题的更多内容 请访问演讲的链接

    谢谢你的观看

Developer Footer

  • 视频
  • WWDC19
  • 打造辅助阅读体验
  • 打开菜单 关闭菜单
    • iOS
    • iPadOS
    • macOS
    • Apple tvOS
    • visionOS
    • watchOS
    打开菜单 关闭菜单
    • Swift
    • SwiftUI
    • Swift Playground
    • TestFlight
    • Xcode
    • Xcode Cloud
    • SF Symbols
    打开菜单 关闭菜单
    • 辅助功能
    • 配件
    • App 扩展
    • App Store
    • 音频与视频 (英文)
    • 增强现实
    • 设计
    • 分发
    • 教育
    • 字体 (英文)
    • 游戏
    • 健康与健身
    • App 内购买项目
    • 本地化
    • 地图与位置
    • 机器学习
    • 开源资源 (英文)
    • 安全性
    • Safari 浏览器与网页 (英文)
    打开菜单 关闭菜单
    • 完整文档 (英文)
    • 部分主题文档 (简体中文)
    • 教程
    • 下载 (英文)
    • 论坛 (英文)
    • 视频
    打开菜单 关闭菜单
    • 支持文档
    • 联系我们
    • 错误报告
    • 系统状态 (英文)
    打开菜单 关闭菜单
    • Apple 开发者
    • App Store Connect
    • 证书、标识符和描述文件 (英文)
    • 反馈助理
    打开菜单 关闭菜单
    • Apple Developer Program
    • Apple Developer Enterprise Program
    • App Store Small Business Program
    • MFi Program (英文)
    • News Partner Program (英文)
    • Video Partner Program (英文)
    • 安全赏金计划 (英文)
    • Security Research Device Program (英文)
    打开菜单 关闭菜单
    • 与 Apple 会面交流
    • Apple Developer Center
    • App Store 大奖 (英文)
    • Apple 设计大奖
    • Apple Developer Academies (英文)
    • WWDC
    获取 Apple Developer App。
    版权所有 © 2025 Apple Inc. 保留所有权利。
    使用条款 隐私政策 协议和准则