Bug 492784

Summary: ContextMenu: MenuItem is missing "focused" and "selected" state when using AtkSelection
Product: [Mono] UI Automation Reporter: Neville Gao <ngao>
Component: Winforms - GeneralAssignee: E-mail List <mono-a11y-bugs>
Status: NEW --- QA Contact: E-mail List <mono-a11y-qa>
Severity: Normal    
Priority: P5 - None CC: cachen
Version: Release 1.0   
Target Milestone: ---   
Hardware: i686   
OS: openSUSE 11.1   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---
Attachments: at-spi sample.

Description Neville Gao 2009-04-07 10:24:20 UTC
Created attachment 284443 [details]
at-spi sample.

PROBLEM STATEMENT:

Menuitem in ContextMenu is missing "focused" and "selected" state when using
AtkSelection. The attached sample codes are as follows:

#!/usr/bin/env python

import pyatspi
import time

reg = pyatspi.Registry
find = pyatspi.findDescendant
findAll = pyatspi.findAllDescendants

desktop = reg.getDesktop(0)
ipy = find(desktop, lambda x: x.name == 'ipy' and x.getRoleName() == 'application')
frame = find(ipy, lambda x: x.getRoleName() == 'frame')
label = find(frame, lambda x: x.getRoleName() == 'label')

extents = label.queryComponent().getExtents(pyatspi.DESKTOP_COORDS)
x = extents.x + (extents.width / 2)
y = extents.y + (extents.height / 2)

# open context menu strip
reg.generateMouseEvent(x, y, pyatspi.MOUSE_B3C)
time.sleep(1)

context_menu = find(ipy, lambda x: x.getRoleName() == 'window')
menu = find(ipy, lambda x: x.getRoleName() == 'menu')
menu_item = find(context_menu, lambda x: x.name == 'Item 1')

menu.querySelection().selectChild(0)
time.sleep(1)

print 'Item 1 States: %s' % menu_item.getState().getStates()


REPRO:

1. Run uia2atk/test/sample/contextmenu_menuitem.py.
2. Run attached pyatspi sample.


RESULTS:

Item 1 States: [STATE_ENABLED, STATE_FOCUSABLE, STATE_SELECTABLE, STATE_SENSITIVE, STATE_SHOWING, STATE_VISIBLE]


EXPECTED RESULTS:

Item 1 States: [STATE_ENABLED, STATE_FOCUSABLE, STATE_SELECTABLE, STATE_SENSITIVE, STATE_SHOWING, STATE_VISIBLE, STATE_FOCUSED, STATE_SELECTED]