Repository: nvaccess/nvda

Issue:
NVDA Fails To Read Anything In Windows Disk Management Graphical View
**Reported by Demetry on 2011-05-03 16:06**
NVDA Fails To Read Anything In Windows Disk Management Graphical View 

Steps to Reproduce: 
1. Under Windows 7, go to Windows Disk Management. 
2. If you land on the Treeview, press TAB until NVDA says: "Graphical View". 
3. Press DOWN ARROW to navigate through the table. 
Result: NVDA says nothing.

NVDA Fails To Read Anything In Windows Disk Management Graphical View
**Reported by Demetry on 2011-05-03 16:06**
NVDA Fails To Read Anything In Windows Disk Management Graphical View 

Steps to Reproduce: 
1. Under Windows 7, go to Windows Disk Management. 
2. If you land on the Treeview, press TAB until NVDA says: "Graphical View". 
3. Press DOWN ARROW to navigate through the table. 
Result: NVDA says nothing.



Discussion:
Attachment mmc.py added by dave090679 on 2015-05-28 16:24
Description:
This Appmodule for mmc makes the graphical view more accessible. Now, it's possible to navigate through the graphical view using the arrow keys. this appmodule was developed in Windows 7 x64. happy testing.

**Edit:**
Added the attachment from the old trac server, please rename to mmc.py
[mmc.py.txt](https://github.com/nvaccess/nvda/files/1204321/mmc.py.txt)


Comment 1 by jteh on 2011-05-03 16:16
Not sure there's much we can do here. The accessibility of this control looks to be pretty broken. You can access it to some extent with object navigation. This needs more thorough investigation, but I suspect it'll be cantfix.

Comment 2 by Demetry (in reply to comment 1) on 2011-05-03 16:44
Replying to [jteh](comment:1):

> Not sure there's much we can do here. The accessibility of this control looks to be pretty broken. You can access it to some extent with object navigation. This needs more thorough investigation, but I suspect it'll be cantfix.

But Cobra can access this information.

Comment 3 by jteh on 2011-05-04 02:20
Cobra is probably doing something very hacky to access it. I don't know how Cobra is doing it, but the control's standard accessibility is certainly rather broken.

Comment 4 by bdorer on 2015-05-28 20:50
The Appmodule is working as expected.

Comment 5 by dave090679 on 2015-06-10 16:39
Changes:
State: closed

Comment 6 by zahari_bgr on 2015-06-10 18:12
I don't think the resolution should be set to "fixed", til this is merged in master - that way you're risking your patch to be forgotten.
However, I can't reopen it for some reason.

Comment 7 by nvdakor on 2015-06-10 18:15
Hi,
Please don't close it as fixed unless if it is an invalid ticket. We should wait until Jamie or Mick comments on this patch.
Thanks.

Changes:
State: reopened

@jcsteh @feerrenrut Could the file attached in https://github.com/nvaccess/nvda/issues/1486#issuecomment-155289857 please be restored? Post that, a gentle ping to all code reviewers to take a look at the submission.
Added the attachment to https://github.com/nvaccess/nvda/issues/1486#issuecomment-155289857
Since its been quite some time since this was tested. Could someone test this again, and create a PR for the inclusion of the attachment.
Here is an update STR for Windows 10 reported by @fernando-jose-silva in #7047:

1. Open file explorer with Windows+E
2. Shift+Tab to the treeview
3. Arrow down to "This-PC"
4. Press the right mouse button with numpad *
5. Press enter on the manage option
6. Walk with the arrow keys down to Disk Manager
7. Now press tab until NVDA says "graphical table view"
8. Try to use the arrow keys to view the items
I'm using this appmodule and it works great.
@dave090679 are you planning to raise a pull request on this? I can assist you if you like.
Attachment mmc.py added by dave090679 on 2015-05-28 16:24
Description:
This Appmodule for mmc makes the graphical view more accessible. Now, it's possible to navigate through the graphical view using the arrow keys. this appmodule was developed in Windows 7 x64. happy testing.

**Edit:**
Added the attachment from the old trac server, please rename to mmc.py
[mmc.py.txt](https://github.com/nvaccess/nvda/files/1204321/mmc.py.txt)


Comment 1 by jteh on 2011-05-03 16:16
Not sure there's much we can do here. The accessibility of this control looks to be pretty broken. You can access it to some extent with object navigation. This needs more thorough investigation, but I suspect it'll be cantfix.

Comment 2 by Demetry (in reply to comment 1) on 2011-05-03 16:44
Replying to [jteh](comment:1):

> Not sure there's much we can do here. The accessibility of this control looks to be pretty broken. You can access it to some extent with object navigation. This needs more thorough investigation, but I suspect it'll be cantfix.

But Cobra can access this information.

Comment 3 by jteh on 2011-05-04 02:20
Cobra is probably doing something very hacky to access it. I don't know how Cobra is doing it, but the control's standard accessibility is certainly rather broken.

Comment 4 by bdorer on 2015-05-28 20:50
The Appmodule is working as expected.

Comment 5 by dave090679 on 2015-06-10 16:39
Changes:
State: closed

Comment 6 by zahari_bgr on 2015-06-10 18:12
I don't think the resolution should be set to "fixed", til this is merged in master - that way you're risking your patch to be forgotten.
However, I can't reopen it for some reason.

Comment 7 by nvdakor on 2015-06-10 18:15
Hi,
Please don't close it as fixed unless if it is an invalid ticket. We should wait until Jamie or Mick comments on this patch.
Thanks.

Changes:
State: reopened

@jcsteh @feerrenrut Could the file attached in https://github.com/nvaccess/nvda/issues/1486#issuecomment-155289857 please be restored? Post that, a gentle ping to all code reviewers to take a look at the submission.
Added the attachment to https://github.com/nvaccess/nvda/issues/1486#issuecomment-155289857
Since its been quite some time since this was tested. Could someone test this again, and create a PR for the inclusion of the attachment.
Here is an update STR for Windows 10 reported by @fernando-jose-silva in #7047:

1. Open file explorer with Windows+E
2. Shift+Tab to the treeview
3. Arrow down to "This-PC"
4. Press the right mouse button with numpad *
5. Press enter on the manage option
6. Walk with the arrow keys down to Disk Manager
7. Now press tab until NVDA says "graphical table view"
8. Try to use the arrow keys to view the items
I'm using this appmodule and it works great.
@dave090679 are you planning to raise a pull request on this? I can assist you if you like.

Resolving patch:
diff --git a/source/appModules/mmc.py b/source/appModules/mmc.py
new file mode 100644
--- /dev/null
+++ b/source/appModules/mmc.py
@@ -0,0 +1,35 @@
+#appModules/mmc.py
+#A part of NonVisual Desktop Access (NVDA)
+#Copyright (C) 2015-2019 NV Access Limited, David Parduhn, Bill Dengler, Leonard de Ruijter
+#This file is covered by the GNU General Public License.
+#See the file COPYING for more details.
+
+import api
+import appModuleHandler
+import controlTypes
+import eventHandler
+from NVDAObjects.IAccessible import IAccessible
+
+class MMCTable(IAccessible):
+	def _get_focusRedirect(self):
+		# #1486: workaround to read tables in MMC, such as the disk management graphical view.
+		for child in self.children:
+			if controlTypes.STATE_SELECTED in child.states:
+				return child
+		return None
+
+
+class MMCTableCell(IAccessible):
+	def event_selection(self):
+		if self.parent.hasFocus and api.getFocusObject() != self:
+			eventHandler.executeEvent("gainFocus", self)
+
+
+class AppModule(appModuleHandler.AppModule):
+	def chooseNVDAObjectOverlayClasses(self, obj, clsList):
+		if obj.windowClassName == "AfxWnd42u":
+			if obj.role == controlTypes.ROLE_TABLE:
+				clsList.insert(0, MMCTable)
+			elif obj.role in (controlTypes.ROLE_TABLECELL,
+			controlTypes.ROLE_TABLEROWHEADER):
+				clsList.insert(0, MMCTableCell)


Test patch: