Ticket #32638

Windows 8.1 スタート画面のタイル移動の読み上げ

Open Date: 2013-12-20 10:51 Last Update: 2014-01-23 21:07

Reporter:
Owner:
(None)
Type:
Status:
Open
Component:
(None)
MileStone:
(None)
Priority:
5 - Medium
Severity:
5 - Medium
Resolution:
None
File:
None

Details

Windows 8.1 スタート画面のタイル移動は Alt+Shift+矢印キー(左右でも上下でもよいようです)で可能ですが、 NVDA はこの操作を読み上げません。

Windows ナレーターは下記のように読み上げているようです。

「デスクトップとメールのあいだに天気を置く、にドロップします」

Ticket History (3/4 Histories)

2013-12-20 10:51 Updated by: nishimoto
  • New Ticket "Windows 8.1 スタート画面のタイル移動の読み上げ" created
2013-12-20 12:32 Updated by: nishimoto
Comment

Windows SDK 8.1 の AccEvents でスタート画面のタイルをキーボード操作で移動したときの UI Automation イベントをとると以下のような感じです。

UIA:FocusEvent	Sender: ControlType:UIA_ListItemControlTypeId (0xC357), Name:"天気"
UIA:AutomationEvent	[Drag_DragStartEventId] Sender: ControlType:UIA_ListItemControlTypeId (0xC357), Name:"天気"
UIA:AutomationEvent	[Drag_DragCompleteEventId] Sender: ControlType:UIA_ListItemControlTypeId (0xC357), Name:"天気"

現状で NVDA のスタート画面サポートにドラッグ&ドロップ関連の処理があるかどうか調べたいと思います。

以下、参考資料:

Accessible Event Watcher

http://msdn.microsoft.com/en-us/library/windows/desktop/dd317979%28v=vs.85%29.aspx

Windows SDK 8.1

http://msdn.microsoft.com/en-us/windows/desktop/bg162891.aspx

C:\Program Files (x86)\Windows Kits\8.1\bin\x64\accevent.exe
2013-12-21 12:51 Updated by: nishimoto
Comment

以下のように書くと、スタート画面のタイルで Alt+Shift を押したときに 500Hz のビープ、矢印キーでタイルの移動が終わって Alt+Shift を離したときに 1000Hz のビープが鳴ることを確認しました。

こういうやり方で UI Automation の処理を追加できそうな感じです。

diff --git a/source/NVDAObjects/UIA/__init__.py b/source/NVDAObjects/UIA/__init__.py
index ee71843..ededf34 100644
--- a/source/NVDAObjects/UIA/__init__.py
+++ b/source/NVDAObjects/UIA/__init__.py
@@ -740,6 +740,14 @@ class ListItem(UIA):
                                parent.event_valueChange()
                super(ListItem, self).event_stateChange()

+       def event_UIA_dragStarted(self):
+               import tones
+               tones.beep(500, 20)
+
+       def event_UIA_dragCompleted(self):
+               import tones
+               tones.beep(1000, 20)
+
 class Dialog(Dialog):
        role=controlTypes.ROLE_DIALOG

diff --git a/source/_UIAHandler.py b/source/_UIAHandler.py
index 227e6b0..f045c00 100644
--- a/source/_UIAHandler.py
+++ b/source/_UIAHandler.py
@@ -115,6 +115,8 @@ UIAEventIdsToNVDAEventNames={
        UIA_ToolTipOpenedEventId:"alert",
        #UIA_AsyncContentLoadedEventId:"documentLoadComplete",
        #UIA_ToolTipClosedEventId:"hide",
+       UIA_Drag_DragStartEventId:"UIA_dragStarted",
+       UIA_Drag_DragCompleteEventId:"UIA_dragCompleted",
 }

 class UIAHandler(COMObject):
2014-01-23 21:07 Updated by: nishimoto
Comment

たまたま本家のチケットでドラッグドロップの話題が出たので、便乗して本件の情報をコメントしました。

http://community.nvda-project.org/ticket/3809#comment:2

Attachment File List

No attachments

Edit

Please login to add comment to this ticket » Login