Accessibility/Mac2020/Draft: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
m (Blanked the page)
No edit summary
Line 1: Line 1:
@startuml


left to right direction
hide empty members
skinparam shadowing false
abstract class Accessible {
  -- Non-virtual methods --
  .. Role and generic type methods ..
  + nsRoleMapEntry* ARIARoleMap()
  + bool HasARIARole()
  + bool IsARIARole(nsAtom* aARIARole)
  + bool HasStrongARIARole()
  + bool HasGenericType(AccGenericType aType)
  .. Downcasting and types checking methods ..
  + bool IsDoc()
  + DocAccessible* AsDoc()
  + bool IsHyperText()
  + HyperTextAccessible* AsHyperText()
  + bool IsImage()
  {method} ...
  -- Virtual methods or methods that call into virtual methods --
  .. Hierarchy Getters ..
  + {abstract} Accessible* Parent()
  + {abstract} Accessible* ChildAt(uint32_t aIndex)
  + {abstract} Accessible* NextSibling()
  + {abstract} Accessible* PrevSibling()
  + {abstract} uint32_t ChildCount()
  + {abstract} int32_t IndexInParent()
  + bool HasChildren()
  + Accessible* FirstChild()
  + Accessible* LastChild()
  .. Core methods ..
  + {abstract} role Role()
  + {abstract} role ARIARole()
  + {abstract} nsAtom* LandmarkRole()
  + {abstract} uint64_t State()
  + {abstract} uint64_t NativeState()
  + {abstract} ENameValueFlag Name(nsString& aName)
  + {abstract} void Value(nsString& aValue)
  + {abstract} void Help(nsString& aHelp)
  + {abstract} void Description(nsString& aDesc)
  + {abstract} void Attributes(nsTArray<Attribute>* aAttrs)
  + {abstract} nsTArray<Accessible*> RelationByType(RelationType aType)
  + {abstract} void Relations(nsTArray<RelationType>* aTypes,
              nsTArray<nsTArray<Accessible*>>* aTargetSets)
  + {abstract} mozilla::a11y::GroupPos GroupPosition()
  + {abstract} void DOMNodeID(nsString& aID)
  + {abstract} void TakeFocus()
  + {abstract} Accessible* FocusedChild()
  .. Selection methods ..
  + {abstract} void SelectedItems(nsTArray<Accessible*>* aSelectedItems)
  + {abstract} uint32_t SelectedItemCount()
  + {abstract} Accessible* GetSelectedItem(uint32_t aIndex)
  + {abstract} bool IsItemSelected(uint32_t aIndex)
  + {abstract} bool AddItemToSelection(uint32_t aIndex)
  + {abstract} bool RemoveItemFromSelection(uint32_t aIndex)
  + {abstract} bool SelectAll()
  + {abstract} bool UnselectAll()
  + {abstract} void SetSelected(bool aSelect)
  + {abstract} bool DoAction(uint8_t aIndex)
  + {abstract} uint8_t ActionCount()
  + {abstract} void ActionDescriptionAt(uint8_t aIndex, nsString& aDescription)
  + {abstract} void ActionNameAt(uint8_t aIndex, nsString& aName)
  + {abstract} KeyBinding AccessKey()
  + {abstract} KeyBinding KeyboardShortcut()
  .. Numeric value methods ..
  + {abstract} double CurValue()
  + {abstract} bool SetCurValue(double aValue)
  + {abstract} double MinValue()
  + {abstract} double MaxValue()
  + {abstract} double Step()
  .. Screen layout methods ..
  + {abstract} Accessible* ChildAtPoint(int32_t aX, int32_t aY, EWhichChildAtPoint aWhichChild)
  + {abstract} nsIntRect Bounds()
  + {abstract} nsIntRect BoundsInCSSPixels()
  + {abstract} void ScrollTo(uint32_t aScrollType)
  + {abstract} void ScrollToPoint(uint32_t aScrollType, int32_t aX, int32_t aY)
  .. Doc methods (should be in doc iface?) ..
  + {abstract} void Language(nsString& aLocale)
  + {abstract} void DocType(nsString& aType)
  + {abstract} void Title(nsString& aTitle)
  + {abstract} void URL(nsString& aURL)
  + {abstract} void MimeType(nsString aMime)
  + {abstract} void URLDocTypeMimeType(nsString& aURL, nsString& aDocType, nsString& aMimeType)
  -- Fields --
  # uint32_t mType
  # uint32_t mGenericTypes
  # uint8_t mRoleMapEntryIndex;
}
class LocalAccessible extends Accessible {
  -- Methods --
  nsIFrame* GetFrame()
  nsIContent* GetContent()
  -- Fields --
  # nsCOMPtr<nsIContent> mContent;
  # RefPtr<DocAccessible> mDoc;
  # LocalAccessible* mParent;
  # nsTArray<LocalAccessible*> mChildren;
}
class RemoteAccessible extends Accessible {
  -- Fields --
  - nsDataHashtable<nsUint32HashKey, nsString> mStringProps
  - nsDataHashtable<nsUint32HashKey, int64_t> mIntProps
  - nsDataHashtable<nsUint32HashKey, double> mFloatProps
}
@enduml

Revision as of 22:23, 25 February 2021

@startuml

left to right direction hide empty members skinparam shadowing false

abstract class Accessible {

 -- Non-virtual methods --
 .. Role and generic type methods ..
 + nsRoleMapEntry* ARIARoleMap()
 + bool HasARIARole()
 + bool IsARIARole(nsAtom* aARIARole)
 + bool HasStrongARIARole()
 + bool HasGenericType(AccGenericType aType)
 .. Downcasting and types checking methods ..
 + bool IsDoc()
 + DocAccessible* AsDoc()
 + bool IsHyperText()
 + HyperTextAccessible* AsHyperText()
 + bool IsImage()
 {method} ...
 -- Virtual methods or methods that call into virtual methods --
 .. Hierarchy Getters ..
 + {abstract} Accessible* Parent()
 + {abstract} Accessible* ChildAt(uint32_t aIndex)
 + {abstract} Accessible* NextSibling()
 + {abstract} Accessible* PrevSibling()
 + {abstract} uint32_t ChildCount()
 + {abstract} int32_t IndexInParent()
 + bool HasChildren()
 + Accessible* FirstChild()
 + Accessible* LastChild()
 .. Core methods ..
 + {abstract} role Role()
 + {abstract} role ARIARole()
 + {abstract} nsAtom* LandmarkRole()
 + {abstract} uint64_t State()
 + {abstract} uint64_t NativeState()
 + {abstract} ENameValueFlag Name(nsString& aName)
 + {abstract} void Value(nsString& aValue)
 + {abstract} void Help(nsString& aHelp)
 + {abstract} void Description(nsString& aDesc)
 + {abstract} void Attributes(nsTArray<Attribute>* aAttrs)
 + {abstract} nsTArray<Accessible*> RelationByType(RelationType aType)
 + {abstract} void Relations(nsTArray<RelationType>* aTypes,
              nsTArray<nsTArray<Accessible*>>* aTargetSets)
 + {abstract} mozilla::a11y::GroupPos GroupPosition()
 + {abstract} void DOMNodeID(nsString& aID)
 + {abstract} void TakeFocus()
 + {abstract} Accessible* FocusedChild()
 .. Selection methods ..
 + {abstract} void SelectedItems(nsTArray<Accessible*>* aSelectedItems)
 + {abstract} uint32_t SelectedItemCount()
 + {abstract} Accessible* GetSelectedItem(uint32_t aIndex)
 + {abstract} bool IsItemSelected(uint32_t aIndex)
 + {abstract} bool AddItemToSelection(uint32_t aIndex)
 + {abstract} bool RemoveItemFromSelection(uint32_t aIndex)
 + {abstract} bool SelectAll()
 + {abstract} bool UnselectAll()
 + {abstract} void SetSelected(bool aSelect)
 + {abstract} bool DoAction(uint8_t aIndex)
 + {abstract} uint8_t ActionCount()
 + {abstract} void ActionDescriptionAt(uint8_t aIndex, nsString& aDescription)
 + {abstract} void ActionNameAt(uint8_t aIndex, nsString& aName)
 + {abstract} KeyBinding AccessKey()
 + {abstract} KeyBinding KeyboardShortcut()
 .. Numeric value methods ..
 + {abstract} double CurValue()
 + {abstract} bool SetCurValue(double aValue)
 + {abstract} double MinValue()
 + {abstract} double MaxValue()
 + {abstract} double Step()
 .. Screen layout methods ..
 + {abstract} Accessible* ChildAtPoint(int32_t aX, int32_t aY, EWhichChildAtPoint aWhichChild)
 + {abstract} nsIntRect Bounds()
 + {abstract} nsIntRect BoundsInCSSPixels()
 + {abstract} void ScrollTo(uint32_t aScrollType)
 + {abstract} void ScrollToPoint(uint32_t aScrollType, int32_t aX, int32_t aY)
 .. Doc methods (should be in doc iface?) ..
 + {abstract} void Language(nsString& aLocale)
 + {abstract} void DocType(nsString& aType)
 + {abstract} void Title(nsString& aTitle)
 + {abstract} void URL(nsString& aURL)
 + {abstract} void MimeType(nsString aMime)
 + {abstract} void URLDocTypeMimeType(nsString& aURL, nsString& aDocType, nsString& aMimeType)
 -- Fields --
 # uint32_t mType
 # uint32_t mGenericTypes
 # uint8_t mRoleMapEntryIndex;

}

class LocalAccessible extends Accessible {

 -- Methods --
 nsIFrame* GetFrame()
 nsIContent* GetContent()
 -- Fields --
 # nsCOMPtr<nsIContent> mContent;
 # RefPtr<DocAccessible> mDoc;
 # LocalAccessible* mParent;
 # nsTArray<LocalAccessible*> mChildren;

}

class RemoteAccessible extends Accessible {

 -- Fields --
 - nsDataHashtable<nsUint32HashKey, nsString> mStringProps
 - nsDataHashtable<nsUint32HashKey, int64_t> mIntProps
 - nsDataHashtable<nsUint32HashKey, double> mFloatProps

}

@enduml