无障碍体验

横竖屏控制的无障碍:旋转画面不能旋转掉阅读顺序

为远端屏幕提供明确旋转按钮、方向锁定降级、键盘操作支持、持久偏好和不改变 DOM 阅读顺序的视觉变换。

把它做成生产功能之前,需要先拆开协议事实、产品承诺和运行成本,三者混在一起很容易得到错误结论。 视频内容方向和设备物理方向是两件事。CSS transform 可旋转画面,但控件和字幕通常应保持正向,且宽高交换后重新计算适配。

无障碍不是发布前补一组 aria 属性,而是让键盘、屏幕阅读器、缩放、减弱动态和高对比度用户完成同一任务闭环,并在错误后找得到下一步。

落地方案的关键部件

实现之前先列出不可违反的不变量,再为性能与体验留出调节参数。参数可以灰度,身份、权限和终态规则不能在运行时随意漂移。

  • 旋转按钮带当前/下一方向 accessible name,使用 90 度步进并持久到该会话;Orientation API 失败时仍保留内容旋转而非死按钮。
  • 把协议事实、用户意图和自动恢复分层;自动化只能恢复事实,不能推翻用户明确选择。
  • 上线参数必须有保守默认值、服务端上限和灰度开关,不能把浏览器传来的数字直接当作资源预算。

“横竖屏控制的无障碍:旋转画面不能旋转掉阅读顺序”的交付标准是正常路径可用、异常路径收敛、资源有界,并且用户能理解系统为何采用当前状态。 这样得到的不是演示代码,而是能解释、能降级、能回滚的生产能力。

别让错误假设进入生产

边界条件会把隐藏假设变成真实事故。弱网、刷新、并发和容量上限必须组合测试,因为单独出现时它们往往都能被重试掩盖。

  • 旋转整个 viewer 容器会让按钮位置和触控坐标错乱;用 DOM 重排模拟旋转可能改变屏幕阅读器顺序。
  • 只修正界面状态而没有清理底层资源,下一次操作继承队列、锁或过期凭据并再次失败。
  • 指标标签直接包含用户或任务标识,既制造高基数成本,也让诊断数据泄露不必要的身份信息。

发布闸门应该检查什么

验证需要先写预期状态轨迹,再执行故障注入。每个阶段同时核对用户可见结果、两端协议状态、持久记录和资源计数,才能证明闭环成立。

  1. 在手机横竖切换、系统锁定、全屏、4 倍缩放和键盘操作中验证视频矩阵、字幕、焦点顺序与触控映射。
  2. 让刷新、取消、超时和远端完成在同一调度窗口发生,断言系统只产生一个终态和一次副作用。
  3. 对日志和埋点做字段白名单检查,证明内容载荷、密钥、完整 IP 与用户可识别信息不会离开设备。

完成并不等于主路径跑通,而是每个终态都能对账、每个自动动作都受用户意图约束、每个成本都有明确上限。

把方法变成一次真实连接

打开 uCopy,让两台设备在浏览器里安全连接并开始传输。

开始免费使用