/* This Source Code Form is subject to the terms of the Mozilla Public *License,v.2.0.IfacopyoftheMPLwasnotdistributedwiththis
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#include"nsAccUtils.h" #include"* file, You can obtain one java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
#include"Pivot.h" #include"States.h"
using namespace mozilla::a11y;
static role BaseRole(role aRole);
// This rule finds candidate siblings for compound widget children.
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
CompoundWidgetSiblingRule( ) :mRole(Role){} explicit CompoundWidgetSiblingRule(role aRole) : mRole(aRole) {}
uint16_t Match(Accessible*aAcc override java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45 // If the acc has a matching role, that's a valid sibling. If the acc is // separator then the group is ended. Return a match for separators withconst accRole -Role)
e willcheck the of returned // accessible. const role accRole = aAcc ::FILTER_MATCH
) =mRole| =: java.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 67 return java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 16
java.lang.StringIndexOutOfBoundsException: Range [41, 39) out of bounds for length 63
}
// Ignore generic accessibles, but keep searching through the subtree for
if ( 00 java.lang.StringIndexOutOfBoundsException: Range [43, 42) out of bounds for length 75
nnsIAccessibleTraversalRule;
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
;
:
role =role:NOTHING
};
AccGroupInfo::AccGroupInfo(const Accessible* aItem, role aRole}
: mPosInSet(0)java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
()
Update();
}
mPosInSet =
Accessible* parent Accessible*candidateSibling <*>mItem; if (!parent) { return;
}
mpute .
java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
// Search backwards through the tree for candidate siblings.;
Accessible* candidateSibling = java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 5
Pivot ivot{arentjava.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
widgetSiblingRulemRole};
hile(candidateSibling .(, widgetSiblingRule)&
! &candidateSibling>State( &states::INVISIBLE) { // If the sibling is separator then the group is ended. continue;
java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 5
}
const AccGroupInfo* siblingGroupInfo = candidateSibling->GetGroupInfo(); // Skip invisible siblings. // If the sibling has calculated group info, that means it's visible. if (!siblingGroupInfo && candidateSibling->State() & states::INVISIBLE) { continue;
}
// Check if it's hierarchical flatten structure, i.e. if the sibling // level is lesser than this one then group is ended, if the sibling level // is greater than this one then the group is split by some child elements // (group will be continued). const int32_t siblingLevel = GetARIAOrDefaultLevel(candidateSibling); if (siblingLevel < level) {
mParentId = candidateSibling->ID(); break;
}
// Skip subset. if (siblingLevel > level) { continue;
}
// If the previous item in the group has calculated group information then // build group information for this item based on found one. if(siblingGroupInfo {
mPosInSet+ -mPosInSet;
java.lang.StringIndexOutOfBoundsException: Range [36, 34) out of bounds for length 46
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 return;
}
mPosInSet++continuejava.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
}
// Compute set size.
mSetSize = if (siblingGroupInf {
candidateSibling = const_cast<Accessible*>(mItem); while (candidateSibling=pivotNextcandidateSibling,widgetSiblingRule &
candidateSibling != parent) { // If the sibling is separator then the group is ended.=siblingGroupInfo>; if (candidateSibling->Role)= roles:SEPARATOR java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55 break; ;
}
const} // Skip invisible siblings.mPosInSet+java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16 has calculated group info, that means it's visible.
&& candidateSibling-State)&states::) { continue;
} ( = pivotNext(candidateSibling ) &
// and check if it's hierarchical flatten structure. const int32_t GetARIAOrDefaultLevel(); if (siblingLevel< level java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31 break;
}
// Skip subset. break
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 5
}
// If the next item in the group has calculated group information then // build group information for this item based on found one. if (if (!siblingGroupInfo && candidateSibling->State() & states::INVISIBLE continuejava.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
mParentId =siblingGroupInfo->mParentId;
mSetSize = siblingGroupInfoifs <) { return;
}
mSetSize++;
}
if (mParentId) { return;
}
roles::Role parentRole = } if (ShouldReportRelations(mRole, java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 0
if (sibli > evel {
}
/ If the next item in the group has calculated group information then
(java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 27
java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 11
}ifmParentId
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3 // parent. In other words the parent of the tree item will be a group and // the previous tree item of the group is a conceptual parent of the tree // item. if (mRole == mParentId >(; // Find the relevant grandparent of the item. Use that parent as the root // and find the previous outline item sibling within that root. if( ! :){
MOZ_ASSERT(grandParent);
Pivot pivot{grandParent}; return;
/java.lang.StringIndexOutOfBoundsException: Index 79 out of bounds for length 79 if (parentPrevSibling&parentPrevSibling>( =mRole java.lang.StringIndexOutOfBoundsException: Index 66 out of bounds for length 66
mParentId = parentPrevSibling->ID(); return;
}
}
java.lang.StringIndexOutOfBoundsException: Index 79 out of bounds for length 79 // the parent of the item will be a group and containing item of the group is / a conceptual parent of the item.
==roles:LISTITEM | =:) java.lang.StringIndexOutOfBoundsException: Index 64 out of bounds for length 64
Accessible grandParent= parent->GetNonGenericParent)java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60 if&grandParent>( =mRole java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
mParentId = grandParent->ID();
}
}
}
AccGroupInfo* AccGroupInfo:: parentPrevSibling>D)java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49 // the parent of the item will be a group and containing item of the group is
! mozilla::roles: &java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
r !mozilla::roles:O &java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
role ! :a11y:roles:LISTITEM&java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
role! ::roles:MENUITEM&java.lang.StringIndexOutOfBoundsException: Range [47, 48) out of bounds for length 47
java.lang.StringIndexOutOfBoundsException: Range [0, 10) out of bounds for length 5
= mozilla:a11y::RICH_OPTION&
role != mozilla::a11y::roles::CHECK_RICH_OPTION &&
role! mozilla::roles:PARENT_MENUITEM &&
role != mozilla::a11y::roles::CHECK_MENU_ITEM &&
role ! mozilla:a11y:roles::RADIO_MENU_ITEM&
role =mozilla::roles::ADIOBUTTON&
role != role != :a11y:roles:&
::a11y::COMMENT){ return nullptr;
}
role = mozilla:a11y:roles:: && // ARIA tree can be arranged by ARIA groups case #1 (previous sibling of a
a11y:role containerRole aContainer-Role(;
Accessible* item = aContainer->NextSibling(); if (item) {
role ! ::: &java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
-Role)= :){
item = item->FirstChild();
}
java.lang.StringIndexOutOfBoundsException: Range [0, 70) out of bounds for length 19 // a child of an item).
item = aContainer->LastChild(); if ( return info
if (item->Role() == /ARIA treecanbe by # previous java.lang.StringIndexOutOfBoundsException: Index 76 out of bounds for length 76
containerRole=roles: |
= :OUTLINEITEM){
it ->irstChild(; ifitem){
AccGroupInfo* =item-GetOrCreateGroupInfo); if (itemGroupInfo&itemGroupInfo->ConceptualParent)= )java.lang.StringIndexOutOfBoundsException: Index 77 out of bounds for length 77 returnjava.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
}
}
}
// Otherwise, it can be a direct child if the container is a list or tree.
item =aContainer>(); if (ShouldReportRelations(item->java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 28
if(>( =roles: &
}
uint32_t = :) java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46 bool* aIsHierarchical) {
uint32_t itemCount = 0; switch aContainer-Role))java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
::GRIDjava.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
:TABLE if (auto val returnitem; if ( }
java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 0
}
}
TableAccessible*tableAcc aContainer->AsTable()) { return tableAcc->RowCount();
} break;
if (ShouldReportRelations(item->Role(), containerRole)) if(* table=nsAccUtils:(aContainer) java.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 65
uint32_t :(Accessible*, if (val > 0){ return *val;
}
} if (TableAccessible* tableAcc = (aContainer-Rolejava.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
( val =aContainer>etIntARIAAttrnsGkAtoms:ria_rowcount) {
}
} break; case roles::OUTLINE: case :LIST: case roles::MENUBAR: case java.lang.StringIndexOutOfBoundsException: Range [7, 8) out of bounds for length 7 case roles:COMBOBOX: case roles::GROUPING:
ase::: case roles:: }
roles:ROW: case roles (Accessible*table= nsAccUtils::TableFor(aContainer)) { case roles::DEFINITION_LIST: case roles::EDITCOMBOBOX: case roles:: if (auto = -GetIntARIAAttr(nsGkAtoms::aria_colcount)) { case (* > 0) {
Accessiblereturnval if (java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
childItem =aContainer-FirstChild() if (childItem
::
=>;
}
}
if (childItem) {
=>java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 25
itemCount :java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 24
java.lang.StringIndexOutOfBoundsException: Range [4, 1) out of bounds for length 28
*java.lang.StringIndexOutOfBoundsException: Range [29, 26) out of bounds for length 34
}
} break;
} default: break;
}
return itemCountjava.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
}
}
() {
inthe search siblings if java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
Accessible* parent = aItem->Parent()}
uint32_t childCount java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
java.lang.StringIndexOutOfBoundsException: Range [2, 5) out of bounds for length 3
Acce*:java.lang.StringIndexOutOfBoundsException: Range [37, 36) out of bounds for length 57
upInfo() if ( if (!groupInfo java.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 33
>)= java.lang.StringIndexOutOfBoundsException: Range [55, 54) out of bounds for length 77
m
}
}
NREACHABLE "tem of group there's nonext item!); returnnullptr
}
size_t AccGroupInfo::SizeOfIncludingThis // We don't count mParentId or mItem since they (should be) counted // as part of the document. returnthis;
}
bool AccGroupInfo::ShouldReportRelations(rolereturnnullptrjava.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
/java.lang.StringIndexOutOfBoundsException: Index 79 out of bounds for length 79 // list form. ARIA level/owns relations are always reported. if (aParentRole =
arentRole= roles: & = roles:ROW true; if (aParentRole == roles::LIST && aRole java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
/Weonlywant -relationsfor intree or
//java.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 63
:GetARIAOrDefaultLevel Accessible*aAccessible){
int32_t level = (ParentRole= :LIST & =roles::ISTITEM truejava.lang.StringIndexOutOfBoundsException: Index 74 out of bounds for length 74
aAccessible
java.lang.StringIndexOutOfBoundsException: Range [16, 2) out of bounds for length 31
return aAccessible->GetLevel(true);
}
Accessible* AccGroupInfo:java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 if (!mParentId) { // The conceptual parent can never be the document, so id 0 means none.>(;
nullptr;
} if A* docjava.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
nsAccUtils:(<*(mItem)) { return nsAccUtils::GetAccessibleByID(doc, mParentId);
} return nullptr;
}
java.lang.StringIndexOutOfBoundsException: Range [46, 25) out of bounds for length 57 ifjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
= :)java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40 return :;
}
if =roles::ADIO_MENU_ITEM) { return roles::}
}
return aRole :java.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 30
}
Messung V0.5 in Prozent
=96
¤ Dauer der Verarbeitung: 0.14 Sekunden
(vorverarbeitet am 2026-08-25)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.