forked from mirrors/gecko-dev
		
	When looking to see if a row has a table, now also include generic text container accessibles in addition to row groups. Also, when iterating through rows from a table, take into account that rows may be wrapped in generic text container accessibles. Differential Revision: https://phabricator.services.mozilla.com/D65158 --HG-- extra : moz-landing-system : lando
		
			
				
	
	
		
			44 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			44 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
/* This Source Code Form is subject to the terms of the Mozilla Public
 | 
						|
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
						|
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 | 
						|
 | 
						|
#include "Filters.h"
 | 
						|
 | 
						|
#include "Accessible-inl.h"
 | 
						|
#include "nsAccUtils.h"
 | 
						|
#include "Role.h"
 | 
						|
#include "States.h"
 | 
						|
 | 
						|
using namespace mozilla::a11y;
 | 
						|
using namespace mozilla::a11y::filters;
 | 
						|
 | 
						|
uint32_t filters::GetSelected(Accessible* aAccessible) {
 | 
						|
  if (aAccessible->State() & states::SELECTED) return eMatch | eSkipSubtree;
 | 
						|
 | 
						|
  return eSkip;
 | 
						|
}
 | 
						|
 | 
						|
uint32_t filters::GetSelectable(Accessible* aAccessible) {
 | 
						|
  if (aAccessible->InteractiveState() & states::SELECTABLE)
 | 
						|
    return eMatch | eSkipSubtree;
 | 
						|
 | 
						|
  return eSkip;
 | 
						|
}
 | 
						|
 | 
						|
uint32_t filters::GetRow(Accessible* aAccessible) {
 | 
						|
  if (aAccessible->IsTableRow()) return eMatch | eSkipSubtree;
 | 
						|
 | 
						|
  // Look for rows inside rowgroup or wrapping text containers.
 | 
						|
  a11y::role role = aAccessible->Role();
 | 
						|
  const nsRoleMapEntry* roleMapEntry = aAccessible->ARIARoleMap();
 | 
						|
  if (role == roles::GROUPING ||
 | 
						|
      (aAccessible->IsGenericHyperText() && !roleMapEntry)) {
 | 
						|
    return eSkip;
 | 
						|
  }
 | 
						|
 | 
						|
  return eSkipSubtree;
 | 
						|
}
 | 
						|
 | 
						|
uint32_t filters::GetCell(Accessible* aAccessible) {
 | 
						|
  return aAccessible->IsTableCell() ? eMatch : eSkipSubtree;
 | 
						|
}
 |