Accessibility/NewArchitecture: Difference between revisions
Jump to navigation
Jump to search
(→mac) |
|||
| Line 111: | Line 111: | ||
==windows== | ==windows== | ||
==simple DOM== | ===simple DOM=== | ||
ISimpleDOM interfaces implementation. | |||
===MSAA=== | ===MSAA=== | ||
IAccessible interface implementation. | |||
===IAccessible2=== | ===IAccessible2=== | ||
IAccessible2 interfaces implementation. | |||
==mac== | ==mac== | ||
Revision as of 16:40, 15 March 2011
Summary
The page describes proposed Gecko a11y architectural changes.
Folders
- build - accessibility service factory
- idl
- ia2 - IAccessible2 interfaces
- msaa - ISimpleDOM interfaces
- xpcom - XPCOM interfaces
- public - exported a11y headers
- src
- base - common files
- generic - generic accessible classes
- html - HTML accessible classes
- xul - XUL accessible classes
- xforms - XForms accessible classes
- atk - ATK implementation (Linux)
- windows - MSAA/IAccessible2/SimpleDOM interfaces implementation (Windows)
- mac - NSAccessibility protocol implementation (OS X)
- others - other platforms
- xpcom - XPCOM interfaces implementation
- tests
- crashtests
- mochitest
'public' folder
- No excess dependences. All inline methods that requires extra includes are prototyped here and defined in implementation classes.
- Defined inside mozilla::a11y namespace
accessible objects
/** * The existing base/nsAccessNode. */ class DOMNodeAccessible;
/**
* The existing base/nsAccessible.
*/
class Accessible : public DOMNodeAccessible {};
/**
* Existing html/nsHyperTextAccessible.
*/
class HyperTextAccessible : public Accessible {};
/**
* Existing base/nsDocAccessible.
*/
class DocAccessible : public HyperTextAccessible {};
/**
* Existing base/nsRootAccessible.
*/
class RootAccessible : public DocAccessible {};
/**
* Existing base/nsApplicationAccessible.
*/
class AppAccessible : public Accessible {};
/**
* New interface classes based on nsIAccessibleTable and nsIAccessibleTableCell.
*/
class TableAccessible : public Accessible {};
class TableCellAccessible : public HyperTextAccessible {};
accessibility service
/**
* Existing nsDocAccManager and nsAccessibilityService
*/
class DocAccessibleMgr {};
class AccService : public DocAccessibleMgr {};
src/generic folder
class GenericAccessible : public Accessible; (nsAccessible)
class ApplicationAccessible : public Accessible; (nsApplicationAccessible)
class ARIAGridAccessible (nsARIAGridAccessible)
class DocAccessible : public GenericAccessible, DocAccessible; (nsDocAccessible)
class HyperTextAccessible
src platforms folders
Every platform defines AccServiceWrap used for initialization (currently done by nsAccessNodeWrap classes).
class AccServiceWrap : public AccService {};
atk
windows
simple DOM
ISimpleDOM interfaces implementation.
MSAA
IAccessible interface implementation.
IAccessible2
IAccessible2 interfaces implementation.
mac
NSAccessibility protocol implementation.
xpcom
accessible classes
Classes are prefixed by 'xp'.
template<class T>
class xpTAccessible : public nsIAccessible,
public nsIHyperlink
{
private:
T* mInternalObj;
};
typedef xpTAccessible<Accessible> xpAccessible;
template<class T>
class xpTHyperTextAccessible : public xpTAccessible<T>,
public nsIAccessibleText,
public nsIAccessibleEdtiableText,
public nsIAccessibleHypertext
{};
typedef xpTHyperTextAccessible<HyperTextAccessible> xpHyperTextAccessible;
class xpImageAccessible : public xpTAccessible<ImageAccessible>,
public nsIAccessibleImage
class xpTableAccessible : public xpTAccessible<TableAccessible>,
public nsIAccessibleTable
{};
class xpTableCellAccessible : public xpTHyperTextAccessible<TableCellAccessible>,
public nsIAccessibleTableCell
{};
class xpDocumentAccessible : public xpTHyperTextAccessible<DocAccessible>,
public nsIAccessibleDocument
{};
class xpApplicationAccessible : public xpTAccessible<AppAccessible>,
public nsIApplicationAccessible
{};
relations
class xpRelation : public nsIAccessibleRelation
{};
accessibility service
class xpAccService : public AccServiceWrap,
public nsIAccessibleProvider
{};