forked from mirrors/gecko-dev
		
	Bug 942650 - Some toolbars have unknown accessible role or worse, r=tbsaunde
This commit is contained in:
		
							parent
							
								
									c7f8cc63c2
								
							
						
					
					
						commit
						f0d833e65b
					
				
					 5 changed files with 19 additions and 16 deletions
				
			
		| 
						 | 
					@ -1006,8 +1006,8 @@ nsAccessibilityService::GetOrCreateAccessible(nsINode* aNode,
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Elements may implement nsIAccessibleProvider via XBL. This allows them to
 | 
					    // XBL bindings may use @role attribute to point the accessible type
 | 
				
			||||||
    // say what kind of accessible to create.
 | 
					    // they belong to.
 | 
				
			||||||
    newAcc = CreateAccessibleByType(content, document);
 | 
					    newAcc = CreateAccessibleByType(content, document);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Any XUL box can be used as tabpanel, make sure we create a proper
 | 
					    // Any XUL box can be used as tabpanel, make sure we create a proper
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -178,8 +178,7 @@ private:
 | 
				
			||||||
  void Shutdown();
 | 
					  void Shutdown();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /**
 | 
					  /**
 | 
				
			||||||
   * Create accessible for the element implementing nsIAccessibleProvider
 | 
					   * Create accessible for the element having XBL bindings.
 | 
				
			||||||
   * interface.
 | 
					 | 
				
			||||||
   */
 | 
					   */
 | 
				
			||||||
  already_AddRefed<Accessible>
 | 
					  already_AddRefed<Accessible>
 | 
				
			||||||
    CreateAccessibleByType(nsIContent* aContent, DocAccessible* aDoc);
 | 
					    CreateAccessibleByType(nsIContent* aContent, DocAccessible* aDoc);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -75,10 +75,7 @@ public:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * A tabpanel object, child elements of xul:tabpanels element. Note,the object
 | 
					 * A tabpanel object, child elements of xul:tabpanels element.
 | 
				
			||||||
 * is created from nsAccessibilityService::GetAccessibleForDeckChildren()
 | 
					 | 
				
			||||||
 * method and we do not use nsIAccessibleProvider interface here because
 | 
					 | 
				
			||||||
 * all children of xul:tabpanels element acts as xul:tabpanel element.
 | 
					 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * XXX: we need to move the class logic into generic class since
 | 
					 * XXX: we need to move the class logic into generic class since
 | 
				
			||||||
 * for example we do not create instance of this class for XUL textbox used as
 | 
					 * for example we do not create instance of this class for XUL textbox used as
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3,9 +3,17 @@
 | 
				
			||||||
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css"
 | 
					<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css"
 | 
				
			||||||
                 type="text/css"?>
 | 
					                 type="text/css"?>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<!-- Firefox toolbar -->
 | 
				
			||||||
 | 
					<?xml-stylesheet href="chrome://browser/content/browser.css"
 | 
				
			||||||
 | 
					                 type="text/css"?>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
 | 
					<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
 | 
				
			||||||
        title="Accessible XUL checkbox and radio hierarchy tests">
 | 
					        title="Accessible XUL checkbox and radio hierarchy tests">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  <!-- Firefox toolbar -->
 | 
				
			||||||
 | 
					  <script type="application/javascript"
 | 
				
			||||||
 | 
					          src="chrome://browser/content/browser.js"/>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  <script type="application/javascript"
 | 
					  <script type="application/javascript"
 | 
				
			||||||
          src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js" />
 | 
					          src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js" />
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -76,6 +84,9 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      testAccessibleTree("toolbar2", accTree);
 | 
					      testAccessibleTree("toolbar2", accTree);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      if (!SEAMONKEY)
 | 
				
			||||||
 | 
					        testAccessibleTree("tb_customizable", { TOOLBAR: [] });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      SimpleTest.finish()
 | 
					      SimpleTest.finish()
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -110,6 +121,8 @@
 | 
				
			||||||
      <toolbar id="toolbar2" toolbarname="2nd" aria-label="My second toolbar">
 | 
					      <toolbar id="toolbar2" toolbarname="2nd" aria-label="My second toolbar">
 | 
				
			||||||
        <toolbarbutton id="button2" label="hello"/>
 | 
					        <toolbarbutton id="button2" label="hello"/>
 | 
				
			||||||
      </toolbar>
 | 
					      </toolbar>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      <toolbar id="tb_customizable" customizable="true"/>
 | 
				
			||||||
    </vbox>
 | 
					    </vbox>
 | 
				
			||||||
  </hbox>
 | 
					  </hbox>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -8,19 +8,13 @@
 | 
				
			||||||
          xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
 | 
					          xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
 | 
				
			||||||
          xmlns:xbl="http://www.mozilla.org/xbl">
 | 
					          xmlns:xbl="http://www.mozilla.org/xbl">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  <binding id="toolbar">
 | 
					  <binding id="toolbar" role="xul:toolbar">
 | 
				
			||||||
    <resources>
 | 
					    <resources>
 | 
				
			||||||
      <stylesheet src="chrome://global/skin/toolbar.css"/>
 | 
					      <stylesheet src="chrome://global/skin/toolbar.css"/>
 | 
				
			||||||
    </resources>
 | 
					    </resources>
 | 
				
			||||||
    <implementation implements="nsIAccessibleProvider">
 | 
					    <implementation>
 | 
				
			||||||
      <field name="overflowedDuringConstruction">null</field>
 | 
					      <field name="overflowedDuringConstruction">null</field>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      <property name="accessibleType" readonly="true">
 | 
					 | 
				
			||||||
        <getter>
 | 
					 | 
				
			||||||
          return Components.interfaces.nsIAccessibleProvider.XULToolbar;
 | 
					 | 
				
			||||||
        </getter>
 | 
					 | 
				
			||||||
      </property>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      <constructor><![CDATA[
 | 
					      <constructor><![CDATA[
 | 
				
			||||||
          let scope = {};
 | 
					          let scope = {};
 | 
				
			||||||
          Cu.import("resource:///modules/CustomizableUI.jsm", scope);
 | 
					          Cu.import("resource:///modules/CustomizableUI.jsm", scope);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue