页面可见性检测演示 - Visibility API
实时显示当前页面可见状态,当切换标签页时记录时间并给出日志。
UD5工具箱
使用 Tab 键和鼠标点击分别测试下方元素,观察 :focus 与 :focus-visible 的行为差异。
自定义 :focus-visible 样式,仅Tab键导航时显示蓝色焦点环,鼠标点击不显示。
:focus 是 CSS 伪类,当元素获得焦点时总是匹配,无论焦点是通过键盘、鼠标还是触摸获得。
:focus-visible 是较新的 CSS 伪类,仅当元素获得焦点且浏览器认为应该显示焦点指示器时才匹配。通常,通过键盘(Tab键)导航时会触发,而鼠标点击通常不会触发。
这解决了长久以来的用户体验问题:鼠标用户不希望看到丑陋的焦点环,但键盘用户需要它来进行无障碍导航。
这是浏览器的有意为之。对于文本输入框(<input>、<textarea>),浏览器认为即使是鼠标点击,显示焦点指示器也是合理的——因为用户需要知道光标在哪里输入文字。
这种行为因浏览器而异:
最佳实践是同时定义两个伪类,确保在各种情况下都有合适的焦点指示:
/* 移除默认焦点样式 */
.my-element:focus {
outline: none;
}
/* 键盘导航时显示明显的焦点环 */
.my-element:focus-visible {
outline: 3px solid #3b82f6;
outline-offset: 2px;
box-shadow: 0 0 0 3px rgba(59,130,246,0.3);
}
这样,鼠标点击不会显示焦点环(保持界面干净),但键盘导航用户能看到清晰的焦点指示。
截至2024年,所有现代浏览器都支持 :focus-visible:
对于旧浏览器,可以使用 focus-visible polyfill 来提供支持。
推荐使用 :focus-visible 的场景:
仍需使用 :focus 的场景:
:focus-visible 是可访问性最佳实践的重要组成部分:
简而言之,:focus-visible 让界面既美观又可访问,是现代化Web开发的推荐做法。
实时显示当前页面可见状态,当切换标签页时记录时间并给出日志。
激活 forced-colors: active 模拟,观察页面在系统高对比度主题下的渲染效果。
加载大量DOM元素,对比启用和不启用content-visibility: auto时的渲染时间和滚动体验。
验证 Origin Trial 令牌的有效性与作用域,显示令牌启用的实验功能列表及过期时间。
渲染网页在Windows强制颜色模式下的样式,协助调试和适应系统高对比度主题。
比较两段文本,在单词级别高亮新增、删除和修改的部分,类似 Google Docs 修订。
调用屏幕共享 API,捕获整个屏幕或窗口并在页面内实时显示,可用于录制演示。
输入 origin trial token,解析出启用的特性、域名和过期时间。
显示一系列石原色觉测试图,框选所见数字,初步判断色觉异常。
可视化为视频添加时间点字幕文本,导出标准WebVTT文件或JSON。
将已有戒指放在屏幕圆圈上比对,或测量指围,转换为美/英/欧/中式号数。
在线检测输入的文本是否为正反读都相同的回文,忽略标点、空格和大小写。
生成一个书签工具,点击后在当前页面动态加载任何 Google 字体并应用到所选文字。
使用Eyedropper API激活系统取色器,拾取屏幕任意位置的颜色值。
实时显示当前浏览器窗口分辨率、屏幕分辨率、像素比(DPR)和色彩深度等信息。
提供代码评审和文档评审的通用检查项,标出等级并生成评审报告。
搜索各类编程语言、框架和工具的矢量图标,点击复制其HTML或SVG代码。
一键切换当前页面的 media 类型为 screen 或 print,方便调试打印样式。
分析页面结构,提示哪些长列表区域适合添加content-visibility: auto优化。
设定FCP、LCP、CLS等指标值,模拟计算PageSpeed Insights得分估算。
将压缩的SQL语句按标准缩进美化,关键字高亮,兼容MySQL/PostgreSQL等方言。
输入事件名称与年代,自动生成美观的横向时间轴图,打印用于学习展示。
输入字体名或从列表选择,在示例文本上立刻看效果,获得@import代码。
将输入文本渲染为点阵式打印机风格的像素字体图片,可调整针头密度和纸张颜色。
选择两种开源许可证,并排显示全文,高亮关键差异条款,帮助选择合适许可证。
悬浮在页面上的虚拟直尺和量角器,可测量屏幕元素的角度和像素距离。
获取显卡型号、WebGL 参数和扩展信息,展示 WebGL 指纹的独特性和隐私风险。
按时间点添加事件,生成美观的垂直或水平时间轴HTML/CSS代码。
输入单词列表,生成随机排列的字母矩阵并标记位置,支持打印成单词搜索练习题。
选择颜色、透明度等特征,缩小可能的水晶种类范围并展示图片。