首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

SwiftUI Release 引入的辅助焦点管理

这个新功能使得在SwiftUI中处理辅助技术(如 VoiceOver 和 Switch Control)的焦点状态变得更加轻松。...通常,屏幕上有多个元素,您可能希望在它们之间移动焦点。为了支持这种情况,SwiftUI 提供了一种通过枚举定义可聚焦字段并在它们之间切换的方法。...使用 @FocusState 属性包装器定义了可选变量 focus,以便在用户将焦点从您定义的视图移动时将其值设置为 nil。...总结在这篇文章中,我们深入探讨了 SwiftUI Release 引入的辅助焦点管理功能,使得处理辅助技术(如 VoiceOver 和 Switch Control)的焦点状态变得更加轻松。...此外,我们介绍了一种高级用法,通过枚举定义可聚焦字段并在它们之间切换,以更好地支持屏幕上多个元素的焦点移动。

12210
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    iOS UI 自动化测试原理以及在 Trip.com 的应用实践

    对于 Accessibility 技术,开发人员需要注意的是,XCUITest 框架默认并不能将所有视图元素审查到,只会审查到可以被 VoiceOver 功能读取文字的元素。...个属性是为了让 UIImageView 和 UIView 支持 Accessibility 功能,但仅设置这个属性并不能使这两个视图在 Accessibility 的元素层级结构中可见。...让 App 支持辅助功能 使用 Accessibility Inspector 前文中提到 Apple 对于视图元素会默认审查能够通过 VoiceOver 播放文字的视图元素,而对于 UIImageView...元素层级,该应用可以审查 iOS 和 macOS 的元素。...{ get set } accessibilityLabel 属性可以解决绝大部分的 Accessibility 问题,当光标将焦点放在设置该属性的元素师时,它的内容可由 VoiceOver 读取的人类可读的字符串

    2.2K40

    Ask Apple 2022 与 SwiftUI 有关的问答(上)

    这有点笨拙,我不认为有两个文本框是正确的做法。另外,按照这种方法,@FocusState 变量会变得没有反应,而且它不能被设置为 nil( 返回到以前的视图并没有移除键盘 )。...A:当在其他类型的 UIViewControllers 中使用 UIHostingController 时,你可能会通过调用托管控制器的方法来触发视图加载提前发生。...对于非惰性视图(如 LazyVStack ),一旦 hosting controller 的视图被初始化,onAppear 将被调用。...但是从一个文本字段到下一个文本字段的聚焦感觉不够流畅,而且每当我在一个文本字段中输入一个字母时,我的 CPU 使用率似乎会飙升到 70% — 100%。...image-20221022135907441为 Stepper 添加快捷键Q:我们如何为 SwiftUI 的 Stepper( 在 MacOS 上 )添加增量和减量操作的快捷键?

    12.3K20

    京喜小程序首页无障碍优化实践

    移动端 APP 访问无障碍特性,开启读屏模式的设置路径: iOS:设置 -> 通用 -> 辅助功能 -> 旁白(VoiceOver) 。...安卓:设置 -> 辅助功能 -> 无障碍 -> TalkBack(不同机型路径可能不一样) 以下是一些主要的 VoiceOver 手势: 轻点:选择并朗读项目。 轻点两下:激活所选项目。...如 role='button' 表示元素是按钮,读屏软件会读作“按钮”、role='searchbox' 表示元素用于搜索,读屏软件会读作"搜索"。 属性 —— 让元素具备更多的意义。...当障碍用户聚焦到轮播图后,读屏软件将子元素的描述朗读读来。轮播图继续轮播,焦点索引却不会随轮播状态自动更新,而是跟随当前子元素滑动消失在屏幕中。若要获取更新后的轮播信息,需要重新聚焦。 ?...,读屏软件会将聚焦的子元素(商品图、名字、价格、利益点等)一个个的读出来。

    1.4K31

    在 SwiftUI 中实现音频图表

    下面我们将学习如何通过使用 accessibilityChartDescriptor 视图修饰符为任何 SwiftUI 视图构建音频表示,呈现类似自定义条形图视图或图像的图表。...我们还为图表创建了一个可访问元素,并禁用了其子元素的可访问性信息。为了改进图表视图的可访问性体验,我们还添加了可访问性标签。 最后,我们可以开始为我们的条形图视图实现音频图表功能。...VoiceOver 在移动到图表视图中的条形时播放具有不同音调的声音。VoiceOver 对于更大的值使用高音调,对于较小的值使用低音调。这些音调代表数组中的数据。...AXChartDescriptor 类型的实例表示我们图表中的数据,以 VoiceOver 可以理解和交互的格式呈现。...AXChartDescriptorRepresentable 协议的实例设置为描述我们图表的实例。

    22910

    UI Browser Mac (Apple辅助功能和GUI脚本助手)

    您可以在熟悉的macOS浏览器视图中一目了然,所有这些视图均位于应用程序的包含层次结构中,可轻松浏览窗口,工作表,抽屉,对话框和其他视图。...为了避免迷路,UI浏览器的“路径”视图为您提供了从目标应用程序的根元素到您选择的任何UI元素的路径的紧凑轮廓,其中列出了所有中间元素的有序列表,包括一些用户通常看不见的中间元素。...AppleScript命令生效或网络管理员或用户采取了某些措施,或者因为您使用UI浏览器本身UI浏览器是用户界面参与者您可以通过在目标应用程序的UI元素中设置用户可设置属性的值(包括窗口的大小和位置,应用程序位于最前还是隐藏...,窗口是否被聚焦或最小化,窗口是否被聚焦)来告诉UI Browser 控制 macOS应用程序。...您甚至可以将键盘快捷键发送到目标应用程序的焦点元素,然后在目标应用程序的活动文本字段或文本视图中输入各个字符。

    1.4K20

    iOS最新更新修复了多个安全问题,包括KRACK漏洞

    苹果最近发布了iOS 11.1和macOS High Sierra 10.13.1版本,修复了一些问题,更新了70多个新的表情,并且对多个安全问题进行了修复。...10月中旬时,Wifi WPA2安全协议被曝高危漏洞,几乎涉及所有WiFi设备 攻击者可以利用 KRACK 攻击读取先前认为是安全的敏感信息,如信用卡号,密码,聊天信息,电子邮件,照片等。...2 级盲文输入的支持 改善了 VoiceOver 对多页 PDF 的访问 改善了 VoiceOver 转子播报所收到通知的操作 改善了从应用切换器移除应用时的 VoiceOver 转子操作菜单 修复了部分用户在使用...VoiceOver 进行触摸键入时备选按键无法显示的问题 修复了 VoiceOver 转子始终返回至“邮件”中默认操作的问题 修复了 VoiceOver 转子不会删除信息的问题 其他改进和修复 功能回归...解决了 Apple Watch 应用中出现心率通知设置的问题(第 1 代) 修复了 Apple Watch 上的通知中无法显示应用图标的问题

    94890

    8.2K Star开源软件提升你的窗口管理体验,macOS上的 alt-tab 窗口切换工具

    软件介绍 [AltTab for macOS]是一款强大的 macOS 应用程序,为用户提供了多种窗口和应用程序管理功能。...10.辅助功能 :AltTab 提供多种辅助功能,如 VoiceOver(语音输出)、粘滞键、降低透明度等,提升可访问性。...7.若要自定义 AltTab 的外观和其他设置,请在 macOS 的 "系统偏好设置" 中找到 AltTab,并进行相应的调整。...AltTab for macOS 不仅提供了强大的窗口管理功能,同时也注重用户隐私和资源占用。除非用户明确要求(如升级应用程序或发送崩溃报告),AltTab 不会上传或下载任何数据。...它使用尽可能少的资源,如 CPU、内存和磁盘空间,以确保对系统的影响最小化。

    64420

    如何在 SwiftUI 视图中显示应用图标和版本

    前言在应用中显示应用图标和版本是为用户提供快速识别应用版本和变体的好方法,无论是内部用户(如测试人员或利益相关者)还是外部用户。...在本文中,我将展示如何创建一个可访问的 SwiftUI 视图,既能显示应用图标和版本,又能在各种文本大小和外观下看起来都很好:获取应用图标构建视图的第一步是从主包中获取应用图标。...可以通过检索应用的 Info.plist 文件中的一组键值来完成,如 Stack Overflow 上的这个答案所示:AppIconProvider.swiftimport Foundationenum...我们使用 fixedSize() 修饰符确保应用图标和 VStack 视图的高度相同。最后,我们将所有子视图组合成一个可访问的元素,并为其提供标签,以便为 VoiceOver 用户提供更好的体验。...同时,我们通过使用 fixedSize() 修饰符确保视图高度一致,并使用 accessibilityElement 使其对 VoiceOver 用户友好。

    20022

    如何测试你做的项目的可访问性

    键盘的可访问性 重点关注页面上的所有可交互元素,须同时满足以下两点: 元素可被选中,当按Tab键时 元素可交互,当按Enter/空格/箭头键/Esc键时 我们继续以 360课程培训(https://www.so.com...比如 Mac 上的 VoiceOver(https://webaim.org/articles/voiceover/),在“系统偏好设置/辅助功能/VoiceOver” 中启用它。 ?...首先简单介绍下它的键盘操作,更多信息可查看上面截图里的“使用指南”。 在运行 VoiceOver 时,普通的键盘操作保持不变。...缩放功能 对于视觉障碍的用户,有时需要使用放大镜来阅读页面。这里介绍两种: 页面缩放:浏览器自带的缩放功能 设置大字体:浏览器里设置字号。...良好的页面可访问性,需要(至少)涵盖以下特性: 足够的对比度 表单控件需要有角色、名字或标签、状态 良好的键盘可访问性:所有可交互的元素可被键盘选中、可与键盘交互;不可交互的元素可以不被聚焦 使用恰当的标题和链接

    1.9K10

    Safari 18.0 WebKit 新特性介绍

    该功能适用于 iOS 18、iPadOS 18 和 macOS Sequoia 上的 Safari。 通过点击页面菜单并选择“隐藏干扰项”来激活干扰控制。然后点击你想要隐藏的元素,看它逐渐消失。...CSS 视图过渡 WebKit 在 Safari 18 中增加了对Transition API 的支持。它提供了一种优化的浏览器 API,用于将元素从一个状态动画到另一个状态。...Safari 支持CSS 视图过渡模块第 1 级规范,该规范增加了用于定义过渡动画的新 CSS 属性和伪元素,以及一个新的浏览器 API 来启动过渡动画并响应不同的过渡状态。...这个属性控制元素是否渲染其内容,对于进行性能优化非常有用。它允许你向浏览器传达页面的某些部分可能最初在屏幕外,并建议它们在布局和渲染中被省略。这可以加快页面加载速度。...现在 、 和 元素可以与 VoiceOver 正常工作。

    37110

    Web 隐藏技术:几中隐藏 Web 中的元素方法及优缺点

    Opacity 通过将opacity度设置为0,该元素及其所有后代将被隐藏,并且不会被继承, 但是,它仅从视觉角度隐藏它们。 除此之外,opacity值为1以外的元素将创建一个新的堆叠上下文。...img { opacity: 0; } 根据最初的示例,如果我们要隐藏不透明的图像,结果将如下所示: image.png 该图像仍然存在,并且已保留其空间。 它仅从视觉角度隐藏。...Positioning 要隐藏带有position属性的元素,我们应该将它移到屏幕外,并将其大小设置为0(宽度和高度)。个例子就是跳转导航链接。...可访问性对position: absolute | fixed的影响 屏幕阅读器可访问该元素,并且键盘可聚焦。 它只是从视口中隐藏起来。...我们需要解决两个问题: 1.菜单隐藏时避免用键盘聚焦 2.当导航隐藏时,避免通过屏幕阅读器告知导航 下面的屏幕截图显示了Mac OS上的VoiceOver转子是如何看到页面的。

    5.1K30

    WWDC 2022:哪些是前端开发者要关注的信息?

    容器查询 在响应式布局布局中,经常使用媒体查询(Media Queries)检测视窗的宽高,实现自元素样式的自动调整。但是在一些页面设计中,元素的容器尺寸发生变化时,元素的样式也需要随之变化。...CSS 容器查询就是来解决这个问题的,它一直是 Web 开发者梦寐以求的功能,简单来说: 容器查询允许开发者根据容器元素的大小来设置元素的样式。...cqmin cqi 或者 cqb 的最小值 cqmax cqi 或者 cqb 的最大值 macOS 的 Web 推送 macOS Ventura 上的 Safari 16 即将推出 Web Push。...这一改进允许 WebKit 在比以前更短的时间内为来自客户端(如 VoiceOver )的更多可访问性请求提供服务。在一些复杂的网页上,大量的无障碍请求耗时减少了 25%。...动画改进 CSS Offset Path 为 Web 开发者提供了一种沿任意形状的自定义路径设置动画的方法。offset-path 属性可让你定义要沿其设置动画的几何路径。

    1.8K10

    XcodeXcode 9 的全新功能您会喜欢的工具。内建 Interface BuilderXcode IDE

    您也能更简单地在所有 Mac 上设置 Xcode Server:它现在内置于 Xcode 中,不再需要另外的 macOS Server app。...与 macOS Server 搭配使用时,Xcode 可以设置远程 bot,以便连续构建、分析、测试甚至封装 app。...Cocoa 和 Cocoa Touch 使用“模型-视图-控制器”模式构建,因此可以轻松地独立设计界面,不受实现方式的限制。...Xcode 包括以下 Storyboard 控制器: 表格视图控制器 集合视图控制器 导航控制器 标签栏控制器 页面视图控制器 GLKit 视图控制器 或自定义 Assistant 编辑 Storyboard...macOS 包含的其他工具 命令行工具 下载 macOS SDK,标题和构建工具 (如 Apple LLVM 编译器和 Make)。

    8.3K30

    简单了解下无障碍设计模式

    当使用屏幕阅读器(如 “TalkBack” ),并通过触摸板导航时,在用户指尖触摸到 UI 元素时,会大声读出标签上的文本。...添加到原生元素上的额外的声音(屏幕阅读器能够正确的翻译原生元素) 标记用户界面元素 给输入控件和其他元素添加描述,供屏幕阅读器等设备可以进行朗读 动效 Material design 使用动效来引导视图之间的焦点...视觉反馈(如标签、颜色和图标)和触摸反馈向用户显示了可用的 UI。 导航应该具有清晰的任务流程,和最少的步骤。在频繁使用的任务上,应该实现聚焦控制、或控制键盘和读取焦点的功能。...当页面使用合适的语义化标签时,一些无障碍技术允许用户在页面的这些标记(例如标题)之间导航。 硬件或软件方向控制器(例如 D-pad、轨迹球或键盘)允许用户以线性的方式从一个选择的元素跳到另一个元素。...这意味着按钮应该设置成按钮、复选框应该设置成复选框,以便将控件的类型和状态正确传达给用户。如果一个元素是从一个原生的 UI 元素上扩展或继承的,他会获得父元素的角色。

    4.8K40

    Angular企业级开发(7)-MVC之控制器

    1.MVC中的控制器 AngularJS的控制器主要为了把模型和视图连接在一起。大多数业务逻辑操作都会放在视图对应的控制器中。...3.控制器的作用 3.1 在控制器中初始化模型(添加属性) 创建控制器并将它附加到DOM元素之后,AngularJS会创建一个子作用域。子作用域保存着对应控制器的数据模型。...AngularJS Controller Demo 4.控制器作用域 因为控制器是附加到DOM元素上,所以存在着一个视图,有多个控制器。控制器之间可以是并列的,也可以是嵌套的形式存在。...4.1 视图中控制器并列 各个控制器从附加DOM元素节点开始,到节点对应闭合标签结束的地方创建了一个子控制域,单个控制器里面的$scope对象只能访问和调用该控制器范围内的属性和方法。...控制器嵌套Demo 5.何为ControllerAs AngularJS提供$scope方式来处理Controller。

    1.9K50

    Mac开发跬步积累(二):NSViewController 转场动画精耕细作

    图片来自网络 与iOS相比,在macOS中,控制器的转场情景相对要简洁一些,没有iOS中导航控制器的Push和Pop动画以及边缘返回手势, 保留下的Present方式,倒是提供了特有的切换方式, 可以供我们使用出许多效果...添加需要切换的子控制器: RedController 和BlueController 为自定义的两个控制器,仅显示不同的视图颜色....设置容器视图的颜色 containView.layer?.backgroundColor = NSColor.orange.cgColor } 5....动画效果 Summary(总结) 在macOS中,控制器的转场切换无论是presentViewController方式或者transition方式,本质上都是将要显示的控制器视图View,通过addSubView...自定义present 动画时,需要注意事件穿透问题: 由于显示出来的控制器视图(Controller View)是通过addSubView方式添加到容器视图中,因此在控制器视图(Controller

    2.8K40

    玩转 Xcode Playground(上)

    如何创建实时视图 你可以使用实时视图来为 Playground 添加互动性,试验不同的用户界面元素,并建立自定义元素。...通过导入 PlaygroundSupport 并将当前页面的实时视图设置为你的自定义视图或视图控制器,就可以将一个交互式实时视图添加到 Playground Page 中。...image-20211224105528272 实时视图支持 SwiftUI 视图以及 UIKit(AppKit)的视图和视图控制器。SwiftUI 视图需要通过 setLiveView 来设定。...如何让其他的类型实例在实时视图中显示 任何符合 PlaygroundLiveViewable 协议的类型,都可以被设置为实时视图。...如果 Playground Page 被设置在 macOS 模式,该目录中的内容可以在不同的 Playground 项目 macOS 模式的 Page 中共享。

    4.1K20
    领券