加入收藏 | 设为首页 | 会员中心 | 我要投稿 航空爱好网 (https://www.ikongjun.com/)- 混合云存储、媒体智能、AI行业应用、应用程序集成、办公协同!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

Linux无障碍环境搭建:13年工程师实战指南

发布时间:2026-10-29 11:05:18 所属栏目:Linux 来源:DaWei
导读:  去年四月,我在公司机房的第三排工位上,用一台刚刷完 Debian 12 的 ThinkPad T480 搭无障碍环境——就为了跑通那个被客户盯着要下周上线的语音反馈模块。我原以为把 at-spi2-core、orca 和 espeak-ng 装齐就完了,结

  去年四月,我在公司机房的第三排工位上,用一台刚刷完 Debian 12 的 ThinkPad T480 搭无障碍环境——就为了跑通那个被客户盯着要下周上线的语音反馈模块。我原以为把 at-spi2-core、orca 和 espeak-ng 装齐就完了,结果光是 orca 启动时那句“Speech dispatcher not responding”就卡了我二十来分钟。


文章配图,仅供参考

  中间王工端着泡面路过,往我屏幕上扫了一眼:“你装的哪个包?我看你们测试机上周还能吼两句。”他碗里泡面汤晃了一下,油星子溅到键盘F键旁边——那键我上个月就按不下去了,现在还卡着一层薄薄的黄渍。


  我重装 speech-dispatcher,加 --debug 输出,日志里跳出来一句“Failed to bind to UNIX socket: Address already in use”,但 lsof -U | grep speech 什么都没;我 killall -u $USER 再试,它又报“Permission denied on /run/user/1000/speech-dispatcher”——可 /run/user/1000 目录明明是我的。我 chmod 755 /run/user/1000/speech-dispatcher,它接着报“Module ‘espeak-ng’ failed to initialize”。我切到 root 下手动跑 espeak-ng -v zh -s 120 "你好",声音是出来了,嘶啦嘶啦像撕塑料袋。反正音量调到最大,人耳听清字就行,对吧?


  第八次重启 gdm3 之后,orca 终于开口念菜单栏了。可当鼠标移到终端图标上,它忽然沉默三秒,然后说“application terminal — blank”,实际图标下面明明写着“GNOME Terminal”。我盯了两分钟,没敢动,怕一动就又哑。后来发现是 gnome-shell 插件“accessibility-highlighter”和 orca 抢同一个 at-spi 总线节点——卸载插件后正常了,但第二天 QA 发邮件说“屏幕阅读器在 LibreOffice 表格里无法定位当前单元格”,附件截图右下角还粘着半个微信窗口缩略图(我们开发机真装了微信,因为要测钉钉兼容性)。


  我查 /var/log/syslog,grep at-spi,翻到一行:“at-spi-bus-launcher[21489]: dbus-daemon[21492]: Activated service 'org.a11y.atspi.Registry'”。看起来没错。但我把dbus-daemon进程杀掉重拉,orca立刻失声;换用 systemd --user restart at-spi-dbus-bus.service,它又活过来,念得比刚才还顺。可十分钟后我切回 Chrome 打开 PDF,在左上角点击“阅读模式”按钮——orca 却开始重复读标题栏五遍,中间夹一次“error: could not access accessibility tree”,然后彻底静音。不是退出,是哑了。我 alt+F2 输入 r 回车,GNOME 重绘一遍,它又回来了,念的是我两分钟前已经关掉的文件管理器窗口标题。


  我就站那儿看了五分钟,手指悬在电源键上方,没按。楼道里清洁阿姨推着吸尘器经过,机器嗡嗡声从门缝挤进来,节奏和 orca 刚才断续发声的频率差不多。我记得我第一次在 Ubuntu 10.04 上让 Orca 说出“欢迎使用”是二〇一一年五月——那会儿它靠 gconf 走,没 dbus,也没这个“speech dispatcher”的中间层,反而稳。但现在?现在连启动顺序都得掐秒:必须先起 dbus-user,再起 at-spi-registry,再等三秒让 dconf 加载完桌面配置,最后才能敲 orca &。少半秒,它就读不出桌面图标名。我也不知道为什么差这半秒,反正就是差。


  后来我们上线了。客户说语音反馈基本可用。运维同事发来一条截图:系统服务列表里,speech-dispatcher 进程状态显示 “running (auto-restart)”,括号里的字是灰的。我盯着那行字看了四十秒。有谁碰到过这个吗

(编辑:航空爱好网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!