NVDAメニューのサブメニューが右に表示されない
NVDA 以外のアプリ(例えば Visual Studio 2012)でも不自然にメニューバーが左に寄って表示されるので、どうやら環境設定の問題だと気づきました。
「タッチ対応の画面を使っていると、自動的にメニューが左側に出るようになる」のだそうです。
Windows コントロールパネル「ハードウェアとサウンド」で、タブレットPC設定を「左きき」にすると、従来の表示に戻り、NVDA メニューが左から右に開くようになりました。
秀まるおのホームページ(サイトー企画) > 特集:Windows8対策 http://hide.maruo.co.jp/software/win8special/index.html
コンテキストメニューの表示位置が逆になりました http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1137226986
Windows XP では気にならないのですが、Vista 以降では Windows メニューの look & feel が新しくなっているので、NVDA メニューの幅が広くなっています。
その影響らしいのですが、サブメニューが親メニューの右ではなく左に表示されてしまうことがあります。
画面の横の解像度にもよるようですが、私が使っている横幅 1400 ピクセルのディスプレイでは、多くの場合サブメニューが左側に出てきます。
音声とキーボードで操作している場合には気にならないでしょうが、タッチモードではオブジェクトの位置に基づく操作もあり得るので、できれば直せないかと思っています。
例えば、後述のような変更をすると、NVDA メニューが画面の中央ではなく左端に表示されますが、それでも、すべてのサブメニューが左から右に並ぶわけではなく、「設定」「読み上げ辞書」の下にあるメニューは右ではなく左に表示されてしまいます。
diff --git a/source/gui/__init__.py b/source/gui/__init__.py index dd81b29..5501b11 100644 --- a/source/gui/__init__.py +++ b/source/gui/__init__.py @@ -140,7 +140,7 @@ class MainFrame(wx.Frame): # The menu pops up at the location of the mouse, which means it pops up at an unpredictable location. # Therefore, move the mouse to the centre of thescreen so that the menu will always pop up there. left, top, width, height = api.getDesktopObject().location - x = width / 2 + x = 0 # width / 2 y = height / 2 winUser.setCursorPos(x, y) self.sysTrayIcon.onActivate(None)なお、視覚的な配置に関係がある本家のチケットを2つ見つけたので紹介しておきます。
NVDA menu should always pop up at a predictable location http://community.nvda-project.org/ticket/147
All dialogs and windows of NVDA should be centered on the screen http://community.nvda-project.org/ticket/3148