WUZIQI — Gomoku
好看,本身就是理由
← 返回博客

棋盘设计 · 键盘

不用鼠标,怎样走完一盘五子棋

手离开鼠标以后,棋盘仍该能进、能走、能退出。借用 W3C 的键盘与网格交互指导,讨论五子棋如何区分查看位置和确认落子,以及焦点走到边缘之后该停在哪里。

棋盘与无字键盘的水墨构想图;文中讨论交互建议,不代表现有产品功能。
棋盘与无字键盘的水墨构想图;文中讨论交互建议,不代表现有产品功能。

手离开鼠标后,你按下 Tab,却不知道键盘焦点是否进了棋盘;再按几次,又担心自己会被困在纵横线里。五子棋的键盘体验要覆盖一条完整路径:进入、查看、确认落子、经历回合变化,再离开。这是一份应用通用指导的设计提案,不代表 WUZIQI 已实现这些功能,也不构成合规审计。

Tab 负责进入,也负责离开棋盘

提案把棋盘视作一个复合的空间区域:按 Tab 从上一项进入,落到棋盘内一个明确位置;方向键接管区域内移动;再次按 Tab 前往棋盘后的控制项,Shift+Tab 则向前退出。这个思路借鉴 W3C APG 的网格模式,让页面的顺序导航保持短而可预测。

WCAG 的键盘说明关注的是功能能否经键盘完成,并未规定五子棋必须使用哪一组按键。因此,Tab 进出与方向键漫游属于 APG 启发的交互选择,不应写成 WCAG 强制键位。W3C 文档提供通用网页指导,也并非五子棋标准。

入口还要容易理解。棋盘附近可以给出简短提示,说明“方向键查看,Enter 或空格确认,Tab 离开”;提示应在操作前可读,也应能被辅助技术取得。若焦点再次进入,可回到刚才查看的位置;若棋局已经重置,则选择一个稳定、可解释的起点。

方向键只移动查看位置,不提交落子

上、下、左、右应沿棋盘的空间关系移动,每次跨过一个交叉点。按键产生的结果只是改变当前查看位置,棋盘状态仍然保持原样。焦点绝不能在没有确认的情况下悄悄变成棋子,长按方向键也不能连续落子。

这份方案建议用 Enter 或空格提交当前位置,二者都是设计选择,需要在说明中明确。确认发生时,系统先检查当前回合和所选规则,再决定能否落子。一个没有棋子的交叉点仍可能不可用,例如棋局已经结束、尚未轮到本方,或所选规则判定该点非法。

落子成功后,反馈应说明位置与棋局变化,同时保留清楚的焦点去向。可以让焦点停在刚落下的位置,等待下一次方向键输入;对手落子或回合切换也不应突然把焦点拖到别处。若提交失败,焦点留在原位,并给出具体原因。

水墨棋盘一角,空心焦点环停在外缘交叉点,淡墨方向痕迹抵达边界
这是一幅关于焦点与边界的水墨构想图,没有表达开局、攻防或落子次序。

可见焦点要与上一手清楚分开

棋盘上至少有两种容易混淆的视觉信息:此刻键盘将作用在哪里,以及最近一次棋子落在哪里。WCAG 对可见焦点的说明要求键盘操作者能够辨认焦点所在。转译到棋盘时,焦点宜采用持续可见的空心轮廓,上一手则使用另一种形状或位置标记,不能只靠相近色差。

当焦点与上一手落在同一交叉点,两层信息仍要同时成立。例如,焦点环可以位于棋子外侧,上一手标记留在棋子内部或旁边,互不遮挡。配套状态说明还可读出坐标、占用情况和是否为上一手,避免视觉样式承担全部含义。

焦点提示应一直保留到它确实移走,不能闪一下便消失。鼠标悬停、最近落子动画与键盘焦点也要有不同寿命:悬停随指针离开,动画可以结束,焦点仍然可见。这样,即使视线短暂转向局面信息,回来后仍能找到当前位置。

焦点表示查看,落子需要确认。

已有棋子的交叉点仍然可以检查

方向键经过已有棋子的交叉点时,焦点应照常落上去。该位置可以被检查,并读出行列、棋子归属以及是否带有上一手标记。此时按 Enter 或空格不会再放置棋子;反馈应简短说明“该位置已占用”,同时保持焦点稳定,方便继续查看相邻位置。

跳过占用点会破坏棋盘的空间尺度。向右一次有时跨一格,有时跨过整段棋形,使用者便难以凭按键次数建立位置感。让每个交叉点都可到达,也便于复盘时逐点检查连接、空隙和边缘,只把提交权限留给符合当前规则的位置。

走到边界就停下,不从另一侧出现

焦点位于最右侧时,再按右方向键应留在原处;其余三条边同理。APG 对数据网格的方向导航也采用这种边缘行为。五子棋棋盘具有固定的二维方位,若从右边跳到下一行左端,键盘路径会突然改变距离与方向,空间记忆随之断裂。

停住并不等于失去反馈。焦点轮廓继续显示,位置说明保持不变;如需额外提示,可以在首次碰到边界时给出克制的状态信息,避免每次重复按键都打断阅读。页面也不应趁机滚动,因为此时方向键仍属于棋盘导航。

用一盘完整流程检验键盘设计

只测试“能否落下一手”远远不够。完整检查要从棋盘外开始,经过 Tab 进入、方向键浏览、非法位置反馈、合法提交、对手行动与回合交替,再走到终局。每次状态变化都要确认焦点是否仍可见、位置是否合理,以及方向键有没有被新的提示或面板截走。

终局之后同样需要明确去向。若出现结果信息,键盘应能阅读并关闭;关闭后,焦点回到触发流程的合理位置。开始新一局时,旧棋子的状态被清除,焦点起点也应重新说明。选择离开棋盘后,Tab 必须顺利到达后续控制项,Shift+Tab 则能回到前一项。

读者或开发者可以现在做一次纯键盘试验:先把指针移开,只用 Tab 进入棋盘;用四个方向键走到各条边,确认没有换行或环绕;经过已有棋子并读取其状态;在空点按 Enter 或空格,分别观察合法与非法结果;等待回合改变,完成终局与新一局流程;最后用 Tab 和 Shift+Tab 从两个方向离开。途中只要发生无确认落子、焦点消失或无法退出,就把当时的按键与位置记录下来。


读完了?打开 WUZIQI 试一局。