Show
Ignore:
Timestamp:
06/20/08 02:19:19 (5 months ago)
Author:
jteh
Message:

Merge changes from jamie branch.

Virtual buffers:

  • Add radio button (r), combo box (c), check box (x), graphic (g) and block quote (q) quick navigation keys. Closes #102.
  • gecko_ia2: When searching for nodes, don't exclude invisible nodes. The virtual buffer library now excludes 0 length nodes when searching, which is more desirable, as it seems there can be invisible container nodes which are not empty. This means that quick navigation and links list will now detect some nodes which were previously skipped.
  • gecko_ia2: The virtual buffer now includes individual IA2 attributes as individual IAccessible2::attribute_* attributes, so use these instead of splitting the IA2 attributes string.

These changes require version 2008-06-20-01 of the NVDA Miscellaneous Dependencies package.

Location:
trunk
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • trunk

    • Property bzr:revision-id:v3-list-QlpoOTFBWSZTWbrL2vUAAB1VgAAQABCAQDrrnqAgAFCgaaGRkxBoTIJ6mmaNRwhndFAoNhZjh_YY4a01fOg1ulgNNC2UrzPdXXEnDpX8XckU4UJC6y9r1A..
      •  

        old new  
        1211211949 jamie@jantrid.net-20080618024155-hnfqtfrrlycntfe8 
        1221221950 jamie@jantrid.net-20080618115747-e1qp3nvy4r5yrbxj 
         1231953 jamie@jantrid.net-20080620021038-kws5jx568oiqsr84 
    • Property bzr:revision-info
      •  

        old new  
        1 timestamp: 2008-06-18 21:57:47.119999886 +1000 
         1timestamp: 2008-06-20 12:10:38.183000088 +1000 
        22committer: James Teh <jamie@jantrid.net> 
        33properties:  
    • Property bzr:ancestry:v3-list-QlpoOTFBWSZTWbrL2vUAAB1VgAAQABCAQDrrnqAgAFCgaaGRkxBoTIJ6mmaNRwhndFAoNhZjh_YY4a01fOg1ulgNNC2UrzPdXXEnDpX8XckU4UJC6y9r1A..
      •  

        old new  
        55jamie@jantrid.net-20080507074841-cxoldzwvz389fete 
        66jamie@jantrid.net-20080515034203-lqqkial6z42ghm9n 
         7jamie@jantrid.net-20080620020915-517kp7zmtosfkd3p 
  • trunk/source/virtualBuffers/gecko_ia2.py

    r2131 r2149  
    2323                accRole=int(accRole) if accRole.isdigit() else accRole 
    2424                role=IAccessibleHandler.IAccessibleRolesToNVDARoles.get(accRole,controlTypes.ROLE_UNKNOWN) 
    25                 _IA2Attributes=attrs.get('iaccessible2::attributes',"") 
    26                 IA2Attributes={} 
    27                 for attrib in _IA2Attributes.split(';'): 
    28                         nameValue=attrib.split(':') 
    29                         name=nameValue[0].lower() 
    30                         if len(nameValue)>1: 
    31                                 value=nameValue[1] 
    32                         else: 
    33                                 value="" 
    34                         if value is not "": 
    35                                 IA2Attributes[name]=value 
    36                 if IA2Attributes.get('tag',"").lower()=="blockquote": 
     25                if attrs.get('iaccessible2::attribute_tag',"").lower()=="blockquote": 
    3726                        role=controlTypes.ROLE_BLOCKQUOTE 
    3827                states=set(IAccessibleHandler.IAccessibleStatesToNVDAStates[x] for x in [1<<y for y in xrange(32)] if int(attrs.get('iaccessible::state_%s'%x,0)) and x in IAccessibleHandler.IAccessibleStatesToNVDAStates) 
     
    4433                        # This is a named link destination, not a link which can be activated. The user doesn't care about these. 
    4534                        role=controlTypes.ROLE_TEXTFRAME 
    46                 level=IA2Attributes.get('level',"") 
     35                level=attrs.get('iaccessible2::attribute_level',"") 
    4736                newAttrs=attrs.copy() 
    4837                newAttrs['role']=role 
     
    231220                elif nodeType=="separator": 
    232221                        attrs={"IAccessible::role":[IAccessibleHandler.ROLE_SYSTEM_SEPARATOR]} 
     222                elif nodeType=="radioButton": 
     223                        attrs={"IAccessible::role":[IAccessibleHandler.ROLE_SYSTEM_RADIOBUTTON]} 
     224                elif nodeType=="comboBox": 
     225                        attrs={"IAccessible::role":[IAccessibleHandler.ROLE_SYSTEM_COMBOBOX]} 
     226                elif nodeType=="checkBox": 
     227                        attrs={"IAccessible::role":[IAccessibleHandler.ROLE_SYSTEM_CHECKBUTTON]} 
     228                elif nodeType=="graphic": 
     229                        attrs={"IAccessible::role":[IAccessibleHandler.ROLE_SYSTEM_GRAPHIC]} 
     230                elif nodeType=="blockQuote": 
     231                        attrs={"IAccessible2::attribute_tag":["BLOCKQUOTE"]} 
    233232                elif nodeType=="focusable": 
    234233                        attrs={"IAccessible::state_%s"%IAccessibleHandler.STATE_SYSTEM_FOCUSABLE:[1]} 
    235234                else: 
    236235                        return None 
    237                 # We should never consider invisible nodes. 
    238                 attrs["IAccessible::state_%s"%IAccessibleHandler.STATE_SYSTEM_INVISIBLE]=[None] 
    239236                return attrs 
    240237