大多数浏览器和
Developer App 均支持流媒体播放。
-
Swan's Quest 第一章: 黑暗中的声音
Swift Playgrounds 出品《天鹅之旅》,一款老少咸宜的四章节互动冒险游戏。在这一章中,我们的英雄需要穿越黑暗洞穴——这是点燃火把的唯一方法。 了解旁白并编写音频说明。也许你就能帮我们的英雄解开音乐之谜…走向旅程的下个阶段。 《天鹅之旅》专为 iPad 与 Mac 量身定制,其中结合了我们许多 Playground 教育体验中使用的框架与资源(如 Sonic Workshop、Sensor Arcade 与增强现实等)。要了解更多如何制作自己 Playground 的信息,请查看“为 iPad 与 Mac 创建 Swift Playground 内容”一节。 另外,别忘了去开发者论坛,分享你对《天鹅之旅》的看法哦。
资源
相关视频
WWDC20
-
下载
(你好 WWDC 2020) 你好 欢迎来到 WWDC (Swan's Quest 第一章: 黑暗中的声音) 大家好 这是 Swan's Quest 我是 Rob 我会带你们深入地了解 我们优秀团队所打造的 Swift Playgrounds 挑战 我们打造了这个挑战来提醒你 代码编写应该是有趣的 Swift Playgrounds 是一个环境 它包含多种框架和 API 让你可以在减少编写代码的同时 简单地测试复杂的技术 这可以让你专注在你要构建的事物上 而不是花费时间去想要怎么构建它 在本视频中
我们将给你们介绍 Swan's Quest 它被分成了四个篇章 每一章都为你设计了 建立在前面篇章基础上的 特定编程挑战 第一个挑战会要求你穿过 一个黑暗神秘的山洞 你只有旁白还有我们易于使用的 API 来为你提供屏幕上元素的描述性情况 我们会讲解如何为你的设备打开旁白 然后给你介绍辅助功能 API 我们用它来把我们的培训内容 打造成了全世界最无障碍的编程环境 最后 我们会给你们一些提示 让你们了解如何使用这些 API 穿过山洞 见到我们的 Swan
准备好开始了吗?
Swan's Quest 是一个四章挑战 你将会使用你的编程技术 来给我们勇敢的 Turtle 指引方向 帮助它完成伟大的征途
Turtle 会经过一个漆黑无比的山洞 来寻找皇家 Swan Swan 可以授予 Turtle 安全离开王国的出路 但 Turtle 得先博取它们的欢心
要想博取欢心 Turtle 就必须完成 Swan 定下的 一系列音乐挑战 此时 Turtle 就需要你
还有一只当地 Lizard 的帮忙了 它可以帮助破译 Swan 的线索
Lizard 会给你提示 让你知道要使用哪一个 API
Swan's Quest 由四个编程练习组成 它采用的框架 和我们通过 Swift Playgrounds 来交付培训内容的框架是一样的 我们用这个框架来教导新手程序员 如何在 Swift 中编写代码 但你是否知道你可以混合我们的内容 然后给你的项目使用同一个框架? 要想开始使用 SDK 最好的方法就是通过我们的起始点 比如你在这里看到的三个模板 这些是模板化 Playground 本子 它们可以让你在不离开 Swift Playgrounds 的情况下 创建新页数和新的 Swift 模块 对于每一个模板来说 我们都包含了同样的模块 来创建它们的导向性学习伙伴 在 Sonic Create 中 我们让测试音频 API 变得容易 在 Sensor Create 中 你可以充分利用不同的 iPad 传感器 而在 AR Create 中 你可以通过 Sarah Rothberg 的自定义艺术 来创建你自己的增强现实体验
至于 Swan's Quest 我们创建了更强大的新模板 它结合了我们起始点的几个 API
你可以直接从开发者 app 中 下载这个模板 和 Swan's Quest 和我们提供的所有内容一样 这些本子都是开源的 这意味着你可以在你的 Mac 上 对它们进行解包 然后看看我们是如何使用这些 API 来打造每一个挑战的
在我们的四个讲座中 我会讲述一些 你需要用来完成每一个挑战的 API 对于今天的挑战来说 你将使用我们的辅助功能 API 还有旁白 你会需要它们的 你会需要这两个工具 来帮助你走出挡在你和 Swan 之间的山洞 你很幸运 第一位来宾 Jordyn 她是辅助技术的专家 她会给你们讲解有关旁白的速成课程 请注意听讲 因为旁白是 破解山洞谜题的最佳工具
谢谢你 Rob 大家好 我是 Jordyn Apple 的辅助功能工程师 我不只是帮助打造 Apple 的辅助技术 还每天都使用它来跟我的家人朋友联系 给我可爱的猫咪订购食物 学习弹钢琴 当然还少不了编写代码 说到编码 不如我们直接开始吧 要想完成第一个挑战 你就得使用旁白 旁白是 Apple 的屏幕阅读器 它内建于我们所有的产品中 当你使用文字转语音、盲文或两者兼用 并在一个 app 的界面中移动时 旁白会提供有关文本、控件和其他元素的 信息
你需要旁白来穿过漆黑阴森的山洞 并编写代码来照亮你的道路 你没听错 你要使用旁白来编写代码 别担心 一旦你掌握了窍门 你就会发现这并不难 相信我吧 在我们开始之前 我们先来设置辅助功能快捷键 这会让你快速启用或关闭辅助功能设置 只需要点按主屏幕 或休眠/唤醒按钮三次即可 前往设置 辅助功能 然后推到最下方 你就会看到辅助功能快捷键了 让我们来选择旁白吧 接下来 我们来启用旁白 如果你是在 iPad 上操作 那你可以前往设置 辅助功能 旁白 你会看到最上方有个切换开关 要想启用功能 你可以打开这里的旁白 或者使用我们刚才设置好的 辅助功能快捷键 你可以让 Siri 启用旁白 首先 你会听到提示音“旁白已开启”
你可能需要轻点两次“确认”按钮 来确认旁白启用后 手势就会不一样了
围绕着你选定控件的 黑色长方格是旁白光标
它会在视觉上确认 哪一样东西是旁白的焦点
用一只手指向左或向右轻拂 来移动光标到屏幕上不同的元素去
辅助功能帮助中心 计算机视觉 标题 旁白已开启 关闭 旁白已开启按钮
你也可以在屏幕上拖动你的手指 来更快速地移动光标
音频 旁白已… 现在 你可以花几分钟的时间 把旁白的语速调至你喜欢的速度 只需要用一只手指 在语速滑动条上上下滑动即可
语速 45% 55 65% 75%
85% 95% 100% 95% 80% 70% 很多有经验的旁白用户 喜欢直接调至最高语速 来快速接收信息和高效移动 那大约是每分钟 720 字 听起来像是这样 语速… 没错 我可以听清楚这么快的旁白语速 要想退出设置 你需要按 iPad 上的主屏幕按钮 如果你的设备没有主屏幕按钮 那你就需要用一只手指 从屏幕最下方滑上来直到听到第一个声音 如果你停在那里 旁白就会说“返回主屏幕”
返回主屏幕
当你返回主屏幕后 你可以移动到 Swift Playgrounds 图标那里 然后轻点两次打开
Playgrounds
轻点两… Playgrounds 如果你在 Mac 上 你可以按 Command 键和 F5 键 或者三击触控 ID 按钮 来启用旁白
启用旁白之后 你可以在屏幕上移动旁白光标 只需要按 Control 键和 Option 键 或者使用左右箭头键即可
同样的 你可以通过 Control 键和 Option 键 或者上下箭头键来实现上下移动 要想进入一组控件或元素 比如 Playgrounds 中的源代码编辑器 请按 Control 键加 Option 键 加 Shift 键和下箭头键 来进行我们称为“互动”的操作
要想停止互动 离开这组控件 请按 Control 键加 Option 键 加 Shift 键和上箭头键
使用 Control 键加 Option 键 加空格键来启用控件 现在你已了解旁白、启用它的方法 以及一些基本手势和指令 接下来 我想要说一下 一个让很多失明人士拒绝使用 你开发的优秀 app 的悲惨体验
在 Apple 这里 我们为 我们产品中一流的界面设计而感到骄傲 辅助功能也被赋予了同样的一流质量 无障碍是 Apple 的核心价值之一 启用旁白之后 当你在设置和主屏幕上移动时 你会听到很多丰富的内容
遗憾的是 并不是所有开发者 都会专注于辅助功能 这是听得出来的
当你初次下载一个 app 时 你立刻就可以听到 我听到的都是未标记的按钮 而不是丰富的信息详情 所以当我在屏幕上轻扫时 我听到的都是 按钮 按钮 按钮 另外还会听到一些图片名字 在这种情况下 当我在屏幕上轻扫时 我听到 “已读 二十… 火炬二 图形 火炬三 图形” “火炬六 图形” 我就很好奇: “这些火炬到底长什么样子?”
“我该拿它们怎么办?”
至于 app 的话 我就会想:“这些按钮是做什么用的?” “我应该怎么使用它?” 说实话 我会在打开 一款未标记按钮的 app 的 第一分钟之内把它卸载 但是你可以改变这种体验 你可以通过添加按钮和控件标记 来为每个人打造一个更好的 app 界面
“已看过 火炬三 火… 火炬” “一块 12 英寸的石头 燃烧着一团神秘的蓝色火焰” 这就合理多了 听起来很不错 当人们使用 Swift Playgrounds 时 他们期望的是绝佳的用户体验 我们的内容必须适合每个人学习如何编码 绝无例外 这也是为什么我的工程师同事们 构建了一个易于使用的 API 来打造绝无障碍的 Swift Playgrounds 内容
为了讲解更多有关这些 API 的详情 我会给你们介绍我的同事 Swift Playgrounds 团队的 Stephen 谢谢你 Jordyn 大家好 我是 Stephen Swift Playgrounds 团队的培训工程师 我们不希望使用我们内容的用户 经历 Jordyn 刚才形容的体验 在 Apple 我们相信“人人能编程” 这也是为什么我们建立了一个 易于使用的辅助功能界面 在 Swift Playgrounds 的内容 SDK 上 内容 SDK 的基础 是由四个屏幕上元素所组成的 图形、按钮、精灵和标记 它们都是从 含有辅助功能支持属性的 BaseGraphic 中继承而来 在这里 我们看到了非强制的 accessibilityHints 属性 设置这个属性就是表明 旁白应该读出这个屏幕元素 并且让它对其他辅助服务可见
要想支持旁白 你就要提供这些值 makeAccessibilityElement 会告诉旁白 它应该让光标停在这个条目上 accessibilityLabel 是旁白停在条目上时读出来的文本
让我们来看看一个示例 首先 你创建一个 accessibilityHints 实例 我们要旁白停留在这个图形上 然后读出 “启动按钮以开始派对” 然后 我们创建图形 并把它的 accessibilityHints 设置成我们在第一步时创建的提示变量 我希望你可以明白这个示例 因为你需要用它来完成我们的第一个挑战 谢谢你 Stephen 你可能已经猜到了 我们的第一个挑战“黑暗中的声音” 就是要让屏幕上控件变得无障碍 当你进入山洞时 没有一个火炬是亮着的 事实上 你根本看不到任何东西 而你的游戏角色 在你点亮 足够多的火炬之前 它们都不会移动 要想点亮火炬 你就需要给它们设置辅助标记 有了旁白 你就可以在它们之间移动 当你停在其中一个条目上时 你就会听到属性名字 比如 “火炬一”或者“火炬三”
当你给每个火炬添加了辅助标记之后 你的游戏角色就可以穿过山洞 见到我们的 Swan 了
在 Playgrounds 源代码编辑器里 你需要使用更具描述性的文字 来替代这个无用的标记 动动你的耳朵并改变这个标记 正如你所看到的一样 一旦完成之后 你就可以去见 Swan 并且获得下一个挑战的线索了 在本视频中 我们给你介绍了 Swan's Quest 一个供 WWDC 参加者参与的有趣四章挑战 我们也给你介绍了旁白 以及如何使用 Swift Playgrounds 来编写无障碍软件 最后 我们给了你一些提示 让你知道如何穿过山洞并见到 Swan 我们明天会回来继续说第二章 先在此祝你好运 好好享受 你也可以到讨论区那里告诉我们 你对于第一个挑战的想法
(你好 WWDC 2020)
-
-
12:21 - Graphic.swift
// Graphic.swift open class BaseGraphic: InternalGraphic { public var accessibilityHints: AccessibilityHints? // ... }
-
12:32 - AccessibilityHints.swift
// AccessibilityHints.swift public struct AccessibilityHints: Codable { /// Indicates a graphic should be treated as a UIAccessibilityElement by VoiceOver. public var makeAccessibilityElement: Bool = false /// Label spoken by VoiceOver for the accessible graphic (a localized character name). public var accessibilityLabel: String? // ... }
-
12:45 - Make an Accessible Graphic
// Make an Accessible Graphic import SPCCore import SPCAccessibility let hints = AccessibilityHints(makeAccessibilityElement: true, accessibilityLabel: "Activate button to start the party") let graphic = Graphic(name: "Let's get it Started") graphic.accessibilityHints = hints
-
13:51 - Activating torch1 and torch2
// activate torch1 and torch2 cave.torch1.accessibilityHints = AccessibilityHints(makeAccessibilityElement: true, accessibilityLabel: "Torch next to a stairwell, where dripping water can be heard.") cave.torch2.accessibilityHints = AccessibilityHints(makeAccessibilityElement: true, accessibilityLabel: "Right before the edge of the platform—be careful!")
-
-
正在查找特定内容?在上方输入一个主题,就能直接跳转到相应的精彩内容。
提交你查询的内容时出现错误。请检查互联网连接,然后再试一次。