2007-03-22 10:30:00 -07:00
|
|
|
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
2012-05-21 04:12:37 -07:00
|
|
|
/* 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/. */
|
2007-03-22 10:30:00 -07:00
|
|
|
|
|
|
|
#include "nsHTMLTextAccessible.h"
|
2010-03-16 23:02:28 -07:00
|
|
|
|
2012-05-27 02:01:40 -07:00
|
|
|
#include "DocAccessible.h"
|
2010-09-21 08:05:31 -07:00
|
|
|
#include "nsAccUtils.h"
|
2012-05-07 22:16:40 -07:00
|
|
|
#include "nsIAccessibleRelation.h"
|
2010-04-26 23:52:03 -07:00
|
|
|
#include "nsTextEquivUtils.h"
|
2011-08-09 18:44:00 -07:00
|
|
|
#include "Relation.h"
|
2012-01-11 19:07:35 -08:00
|
|
|
#include "Role.h"
|
2011-04-09 16:38:06 -07:00
|
|
|
#include "States.h"
|
2010-03-16 23:02:28 -07:00
|
|
|
|
2011-07-27 05:43:01 -07:00
|
|
|
using namespace mozilla::a11y;
|
|
|
|
|
2009-10-21 21:45:52 -07:00
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
// nsHTMLHRAccessible
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
2010-06-11 01:23:18 -07:00
|
|
|
nsHTMLHRAccessible::
|
2012-05-27 02:01:40 -07:00
|
|
|
nsHTMLHRAccessible(nsIContent* aContent, DocAccessible* aDoc) :
|
2012-02-07 14:38:54 -08:00
|
|
|
nsLeafAccessible(aContent, aDoc)
|
2010-06-11 01:23:18 -07:00
|
|
|
{
|
2007-03-22 10:30:00 -07:00
|
|
|
}
|
|
|
|
|
2012-01-11 19:07:35 -08:00
|
|
|
role
|
2010-09-04 19:14:01 -07:00
|
|
|
nsHTMLHRAccessible::NativeRole()
|
2007-03-22 10:30:00 -07:00
|
|
|
{
|
2012-01-11 19:07:35 -08:00
|
|
|
return roles::SEPARATOR;
|
2007-03-22 10:30:00 -07:00
|
|
|
}
|
|
|
|
|
2010-06-11 01:23:18 -07:00
|
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
// nsHTMLBRAccessible
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
nsHTMLBRAccessible::
|
2012-05-27 02:01:40 -07:00
|
|
|
nsHTMLBRAccessible(nsIContent* aContent, DocAccessible* aDoc) :
|
2012-02-07 14:38:54 -08:00
|
|
|
nsLeafAccessible(aContent, aDoc)
|
2010-06-11 01:23:18 -07:00
|
|
|
{
|
2007-03-22 10:30:00 -07:00
|
|
|
}
|
|
|
|
|
2012-01-11 19:07:35 -08:00
|
|
|
role
|
2010-09-04 19:14:01 -07:00
|
|
|
nsHTMLBRAccessible::NativeRole()
|
2007-03-22 10:30:00 -07:00
|
|
|
{
|
2012-01-11 19:07:35 -08:00
|
|
|
return roles::WHITESPACE;
|
2007-03-22 10:30:00 -07:00
|
|
|
}
|
|
|
|
|
2011-04-09 16:38:06 -07:00
|
|
|
PRUint64
|
|
|
|
nsHTMLBRAccessible::NativeState()
|
2007-03-22 10:30:00 -07:00
|
|
|
{
|
2011-04-11 23:18:42 -07:00
|
|
|
return states::READONLY;
|
2007-03-22 10:30:00 -07:00
|
|
|
}
|
|
|
|
|
2008-10-10 05:26:55 -07:00
|
|
|
nsresult
|
|
|
|
nsHTMLBRAccessible::GetNameInternal(nsAString& aName)
|
2007-03-22 10:30:00 -07:00
|
|
|
{
|
2007-07-08 00:08:04 -07:00
|
|
|
aName = static_cast<PRUnichar>('\n'); // Newline char
|
2007-03-22 10:30:00 -07:00
|
|
|
return NS_OK;
|
|
|
|
}
|
|
|
|
|
2009-10-21 21:45:52 -07:00
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
// nsHTMLLabelAccessible
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
2008-02-22 01:52:01 -08:00
|
|
|
|
2009-10-21 21:45:52 -07:00
|
|
|
nsHTMLLabelAccessible::
|
2012-05-27 02:01:40 -07:00
|
|
|
nsHTMLLabelAccessible(nsIContent* aContent, DocAccessible* aDoc) :
|
2012-05-31 01:04:41 -07:00
|
|
|
HyperTextAccessibleWrap(aContent, aDoc)
|
2009-10-21 21:45:52 -07:00
|
|
|
{
|
2007-03-22 10:30:00 -07:00
|
|
|
}
|
|
|
|
|
2012-05-31 01:04:41 -07:00
|
|
|
NS_IMPL_ISUPPORTS_INHERITED0(nsHTMLLabelAccessible, HyperTextAccessible)
|
2010-06-11 01:23:18 -07:00
|
|
|
|
2008-10-10 05:26:55 -07:00
|
|
|
nsresult
|
2009-02-18 23:06:14 -08:00
|
|
|
nsHTMLLabelAccessible::GetNameInternal(nsAString& aName)
|
|
|
|
{
|
|
|
|
return nsTextEquivUtils::GetNameFromSubtree(this, aName);
|
2007-03-22 10:30:00 -07:00
|
|
|
}
|
|
|
|
|
2012-01-11 19:07:35 -08:00
|
|
|
role
|
2010-09-04 19:14:01 -07:00
|
|
|
nsHTMLLabelAccessible::NativeRole()
|
2007-03-22 10:30:00 -07:00
|
|
|
{
|
2012-01-11 19:07:35 -08:00
|
|
|
return roles::LABEL;
|
2007-03-22 10:30:00 -07:00
|
|
|
}
|
|
|
|
|
2010-09-21 08:05:31 -07:00
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
// nsHTMLOuputAccessible
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
nsHTMLOutputAccessible::
|
2012-05-27 02:01:40 -07:00
|
|
|
nsHTMLOutputAccessible(nsIContent* aContent, DocAccessible* aDoc) :
|
2012-05-31 01:04:41 -07:00
|
|
|
HyperTextAccessibleWrap(aContent, aDoc)
|
2010-09-21 08:05:31 -07:00
|
|
|
{
|
|
|
|
}
|
|
|
|
|
2012-05-31 01:04:41 -07:00
|
|
|
NS_IMPL_ISUPPORTS_INHERITED0(nsHTMLOutputAccessible, HyperTextAccessible)
|
2010-09-21 08:05:31 -07:00
|
|
|
|
2011-08-09 18:44:00 -07:00
|
|
|
Relation
|
|
|
|
nsHTMLOutputAccessible::RelationByType(PRUint32 aType)
|
2010-09-21 08:05:31 -07:00
|
|
|
{
|
2012-05-28 18:18:45 -07:00
|
|
|
Relation rel = AccessibleWrap::RelationByType(aType);
|
2011-08-09 18:44:00 -07:00
|
|
|
if (aType == nsIAccessibleRelation::RELATION_CONTROLLED_BY)
|
2012-03-22 22:26:52 -07:00
|
|
|
rel.AppendIter(new IDRefsIterator(mDoc, mContent, nsGkAtoms::_for));
|
2010-09-21 08:05:31 -07:00
|
|
|
|
2011-08-09 18:44:00 -07:00
|
|
|
return rel;
|
2010-09-21 08:05:31 -07:00
|
|
|
}
|
|
|
|
|
2012-01-11 19:07:35 -08:00
|
|
|
role
|
2010-09-21 08:05:31 -07:00
|
|
|
nsHTMLOutputAccessible::NativeRole()
|
|
|
|
{
|
2012-01-11 19:07:35 -08:00
|
|
|
return roles::SECTION;
|
2010-09-21 08:05:31 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
nsresult
|
|
|
|
nsHTMLOutputAccessible::GetAttributesInternal(nsIPersistentProperties* aAttributes)
|
|
|
|
{
|
2012-05-28 18:18:45 -07:00
|
|
|
nsresult rv = AccessibleWrap::GetAttributesInternal(aAttributes);
|
2010-09-21 08:05:31 -07:00
|
|
|
NS_ENSURE_SUCCESS(rv, rv);
|
|
|
|
|
2011-06-03 14:35:17 -07:00
|
|
|
nsAccUtils::SetAccAttr(aAttributes, nsGkAtoms::live,
|
2010-09-21 08:05:31 -07:00
|
|
|
NS_LITERAL_STRING("polite"));
|
|
|
|
|
|
|
|
return NS_OK;
|
|
|
|
}
|
|
|
|
|