キーボードトラバーサル (Motif)
マウスなしですべてのボタンやフィールドに到達するためのMotifのモデル。ウィジェットをタブグループにまとめ、Tabでグループ間を移動し、矢印キーでグループ内を移動し、強調枠でフォーカスの位置を示す。
OSFのスタイルガイドは、Motifプログラムのすべてをキーボードから操作可能にすることを求めた。フォーカスがポインタに従い、Tabが単なる文字だったUnixの世界では、珍しい野心である。解決策として、すべてのウィジェットにリソース XmNnavigationType が与えられた。XmTAB_GROUP は自分自身を一つのグループにし、XmNONE は親のグループの一員とし、XmEXCLUSIVE_TAB_GROUP は矢印キーを自分で処理するグループにする。Tab と Shift+Tab がグループ間を、仮想キーの osfUp、osfDown、osfLeft、osfRight がグループ内を移動するので、XmRowColumn内のラジオボタンの列は矢印キーでたどれる。フォーカスを持つものは、幅が XmNhighlightThickness の枠で描かれる。これがMotifの「ロケーションカーソル」だ。
すべてはシェルの XmNkeyboardFocusPolicy にかかっている。既定の XmEXPLICIT ではクリックでフォーカスが移り、トラバーサルも働く。XmPOINTER ではフォーカスをポインタに任せ、大部分の機能が無効になる。プログラムは XmProcessTraversal でフォーカスを移し、XmNtraversalOn で個別のフィールドを巡回から外す。Motif 1.0と1.1では、プログラマがグループごとに XmAddTabGroup を呼ぶ必要があったが、1992年の1.2が妥当な既定値を用意し、コンテナはグループに、テキストフィールドとリストは単独のグループに、何もしなくてもなった。その結果、WindowsやMacのユーザーがCDEに見て取れた特徴の一つ、「Tabが期待どおりに動く」という性質が生まれた。