Reported by jteh on 2012-07-30 10:43
Str:
- Create a global plugin containing the following code:
import globalPluginHandler
class GlobalPlugin(globalPluginHandler.GlobalPlugin):
def chooseNVDAObjectOverlayClasses(self, obj, clsList):
obj.role
- Restart NVDA.
- Open a Windows command console.
- Expected: NVDA should say terminal after announcing the console's title.
- Actual: Only the title is announced.
This also happens for Scintilla editor controls.
I suspect this is because the role gets cached on the instance during the choosing of overlay classes and the cache isn't invalidated until the next core cycle. However, role is overridden by the overlay classes, thus making the cached value incorrect. To solve this, we could simply invalidate the cache after applying overlay classes. This would unfortunately often cause more cross-process calls, but I'm not sure there's anything else we can do to fix this.
Reported by jteh on 2012-07-30 10:43
Str:
This also happens for Scintilla editor controls.
I suspect this is because the role gets cached on the instance during the choosing of overlay classes and the cache isn't invalidated until the next core cycle. However, role is overridden by the overlay classes, thus making the cached value incorrect. To solve this, we could simply invalidate the cache after applying overlay classes. This would unfortunately often cause more cross-process calls, but I'm not sure there's anything else we can do to fix this.