gecko-dev/accessible/xul/XULElementAccessibles.h
James Teh 75767f504f Bug 1930322 part 1: cleanup: Remove aContent argument to LocalAccessible::DoCommand/DispatchClickEvent. r=morgan
We never set this argument to anything other than the default, which meant it always used the LocalAccessible's mContent.
This makes the argument unnecessary and potentially confusing in an area which is already a bit difficult to follow, so just remove it.
There should be no functional change.

Differential Revision: https://phabricator.services.mozilla.com/D229297
2024-11-20 04:13:48 +00:00

108 lines
3.1 KiB
C++

/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* 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/. */
#ifndef mozilla_a11y_XULElementAccessibles_h__
#define mozilla_a11y_XULElementAccessibles_h__
#include "HyperTextAccessible.h"
#include "TextLeafAccessible.h"
namespace mozilla {
namespace a11y {
class XULLabelTextLeafAccessible;
/**
* Used for XUL description and label elements.
*/
class XULLabelAccessible : public HyperTextAccessible {
public:
XULLabelAccessible(nsIContent* aContent, DocAccessible* aDoc);
// LocalAccessible
virtual void Shutdown() override;
virtual a11y::role NativeRole() const override;
virtual uint64_t NativeState() const override;
virtual Relation RelationByType(RelationType aType) const override;
void UpdateLabelValue(const nsString& aValue);
protected:
// LocalAccessible
virtual ENameValueFlag NativeName(nsString& aName) const override;
virtual void DispatchClickEvent(uint32_t aActionIndex) const override;
private:
RefPtr<XULLabelTextLeafAccessible> mValueTextLeaf;
};
inline XULLabelAccessible* LocalAccessible::AsXULLabel() {
return IsXULLabel() ? static_cast<XULLabelAccessible*>(this) : nullptr;
}
/**
* Used to implement text interface on XUL label accessible in case when text
* is provided by @value attribute (no underlying text frame).
*/
class XULLabelTextLeafAccessible final : public TextLeafAccessible {
public:
XULLabelTextLeafAccessible(nsIContent* aContent, DocAccessible* aDoc)
: TextLeafAccessible(aContent, aDoc) {
mStateFlags |= eSharedNode;
}
virtual ~XULLabelTextLeafAccessible() {}
// LocalAccessible
virtual a11y::role NativeRole() const override;
virtual uint64_t NativeState() const override;
};
/**
* Used for XUL tooltip element.
*/
class XULTooltipAccessible : public LeafAccessible {
public:
XULTooltipAccessible(nsIContent* aContent, DocAccessible* aDoc);
// LocalAccessible
virtual a11y::role NativeRole() const override;
virtual uint64_t NativeState() const override;
};
class XULLinkAccessible : public XULLabelAccessible {
public:
XULLinkAccessible(nsIContent* aContent, DocAccessible* aDoc);
// LocalAccessible
virtual void Value(nsString& aValue) const override;
virtual a11y::role NativeRole() const override;
virtual uint64_t NativeLinkState() const override;
// ActionAccessible
virtual bool HasPrimaryAction() const override;
virtual void ActionNameAt(uint8_t aIndex, nsAString& aName) override;
// HyperLinkAccessible
virtual bool IsLink() const override;
virtual uint32_t StartOffset() override;
virtual uint32_t EndOffset() override;
virtual already_AddRefed<nsIURI> AnchorURIAt(
uint32_t aAnchorIndex) const override;
protected:
virtual ~XULLinkAccessible();
// LocalAccessible
virtual ENameValueFlag NativeName(nsString& aName) const override;
enum { eAction_Jump = 0 };
};
} // namespace a11y
} // namespace mozilla
#endif