mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-08-09 17:49:40 +00:00
LibWeb: Use a standard x-macro to create FlyString ARIA attribute names
We are currently constructing the attribute names as FlyStrings every time we invoke one of the ARIA attributes getters/setters. If there are not any other instances of these strings in-memory, then we're thrashing the FlyString cache. Instead, let's follow suit of all other Web attributes - use an x-macro to generate the attribute names.
This commit is contained in:
parent
6381ed26f2
commit
4152870b85
Notes:
github-actions[bot]
2024-12-05 17:10:40 +00:00
Author: https://github.com/trflynn89
Commit: 4152870b85
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/2784
5 changed files with 105 additions and 224 deletions
|
@ -9,177 +9,21 @@
|
|||
#include <AK/String.h>
|
||||
#include <AK/Vector.h>
|
||||
#include <LibWeb/ARIA/AriaData.h>
|
||||
#include <LibWeb/ARIA/AttributeNames.h>
|
||||
#include <LibWeb/ARIA/Roles.h>
|
||||
#include <LibWeb/WebIDL/ExceptionOr.h>
|
||||
|
||||
namespace Web::ARIA {
|
||||
|
||||
class ARIAMixin {
|
||||
|
||||
public:
|
||||
virtual ~ARIAMixin() = default;
|
||||
|
||||
virtual Optional<String> role() const = 0;
|
||||
virtual WebIDL::ExceptionOr<void> set_role(Optional<String> const&) = 0;
|
||||
|
||||
virtual Optional<String> aria_active_descendant() const = 0;
|
||||
virtual WebIDL::ExceptionOr<void> set_aria_active_descendant(Optional<String> const&) = 0;
|
||||
|
||||
virtual Optional<String> aria_atomic() const = 0;
|
||||
virtual WebIDL::ExceptionOr<void> set_aria_atomic(Optional<String> const&) = 0;
|
||||
|
||||
virtual Optional<String> aria_auto_complete() const = 0;
|
||||
virtual WebIDL::ExceptionOr<void> set_aria_auto_complete(Optional<String> const&) = 0;
|
||||
|
||||
virtual Optional<String> aria_braille_label() const = 0;
|
||||
virtual WebIDL::ExceptionOr<void> set_aria_braille_label(Optional<String> const&) = 0;
|
||||
|
||||
virtual Optional<String> aria_braille_role_description() const = 0;
|
||||
virtual WebIDL::ExceptionOr<void> set_aria_braille_role_description(Optional<String> const&) = 0;
|
||||
|
||||
virtual Optional<String> aria_busy() const = 0;
|
||||
virtual WebIDL::ExceptionOr<void> set_aria_busy(Optional<String> const&) = 0;
|
||||
|
||||
virtual Optional<String> aria_checked() const = 0;
|
||||
virtual WebIDL::ExceptionOr<void> set_aria_checked(Optional<String> const&) = 0;
|
||||
|
||||
virtual Optional<String> aria_col_count() const = 0;
|
||||
virtual WebIDL::ExceptionOr<void> set_aria_col_count(Optional<String> const&) = 0;
|
||||
|
||||
virtual Optional<String> aria_col_index() const = 0;
|
||||
virtual WebIDL::ExceptionOr<void> set_aria_col_index(Optional<String> const&) = 0;
|
||||
|
||||
virtual Optional<String> aria_col_index_text() const = 0;
|
||||
virtual WebIDL::ExceptionOr<void> set_aria_col_index_text(Optional<String> const&) = 0;
|
||||
|
||||
virtual Optional<String> aria_col_span() const = 0;
|
||||
virtual WebIDL::ExceptionOr<void> set_aria_col_span(Optional<String> const&) = 0;
|
||||
|
||||
virtual Optional<String> aria_controls() const = 0;
|
||||
virtual WebIDL::ExceptionOr<void> set_aria_controls(Optional<String> const&) = 0;
|
||||
|
||||
virtual Optional<String> aria_current() const = 0;
|
||||
virtual WebIDL::ExceptionOr<void> set_aria_current(Optional<String> const&) = 0;
|
||||
|
||||
virtual Optional<String> aria_described_by() const = 0;
|
||||
virtual WebIDL::ExceptionOr<void> set_aria_described_by(Optional<String> const&) = 0;
|
||||
|
||||
virtual Optional<String> aria_description() const = 0;
|
||||
virtual WebIDL::ExceptionOr<void> set_aria_description(Optional<String> const&) = 0;
|
||||
|
||||
virtual Optional<String> aria_details() const = 0;
|
||||
virtual WebIDL::ExceptionOr<void> set_aria_details(Optional<String> const&) = 0;
|
||||
|
||||
virtual Optional<String> aria_disabled() const = 0;
|
||||
virtual WebIDL::ExceptionOr<void> set_aria_disabled(Optional<String> const&) = 0;
|
||||
|
||||
virtual Optional<String> aria_drop_effect() const = 0;
|
||||
virtual WebIDL::ExceptionOr<void> set_aria_drop_effect(Optional<String> const&) = 0;
|
||||
|
||||
virtual Optional<String> aria_error_message() const = 0;
|
||||
virtual WebIDL::ExceptionOr<void> set_aria_error_message(Optional<String> const&) = 0;
|
||||
|
||||
virtual Optional<String> aria_expanded() const = 0;
|
||||
virtual WebIDL::ExceptionOr<void> set_aria_expanded(Optional<String> const&) = 0;
|
||||
|
||||
virtual Optional<String> aria_flow_to() const = 0;
|
||||
virtual WebIDL::ExceptionOr<void> set_aria_flow_to(Optional<String> const&) = 0;
|
||||
|
||||
virtual Optional<String> aria_grabbed() const = 0;
|
||||
virtual WebIDL::ExceptionOr<void> set_aria_grabbed(Optional<String> const&) = 0;
|
||||
|
||||
virtual Optional<String> aria_has_popup() const = 0;
|
||||
virtual WebIDL::ExceptionOr<void> set_aria_has_popup(Optional<String> const&) = 0;
|
||||
|
||||
virtual Optional<String> aria_hidden() const = 0;
|
||||
virtual WebIDL::ExceptionOr<void> set_aria_hidden(Optional<String> const&) = 0;
|
||||
|
||||
virtual Optional<String> aria_invalid() const = 0;
|
||||
virtual WebIDL::ExceptionOr<void> set_aria_invalid(Optional<String> const&) = 0;
|
||||
|
||||
virtual Optional<String> aria_key_shortcuts() const = 0;
|
||||
virtual WebIDL::ExceptionOr<void> set_aria_key_shortcuts(Optional<String> const&) = 0;
|
||||
|
||||
virtual Optional<String> aria_label() const = 0;
|
||||
virtual WebIDL::ExceptionOr<void> set_aria_label(Optional<String> const&) = 0;
|
||||
|
||||
virtual Optional<String> aria_labelled_by() const = 0;
|
||||
virtual WebIDL::ExceptionOr<void> set_aria_labelled_by(Optional<String> const&) = 0;
|
||||
|
||||
virtual Optional<String> aria_level() const = 0;
|
||||
virtual WebIDL::ExceptionOr<void> set_aria_level(Optional<String> const&) = 0;
|
||||
|
||||
virtual Optional<String> aria_live() const = 0;
|
||||
virtual WebIDL::ExceptionOr<void> set_aria_live(Optional<String> const&) = 0;
|
||||
|
||||
virtual Optional<String> aria_modal() const = 0;
|
||||
virtual WebIDL::ExceptionOr<void> set_aria_modal(Optional<String> const&) = 0;
|
||||
|
||||
virtual Optional<String> aria_multi_line() const = 0;
|
||||
virtual WebIDL::ExceptionOr<void> set_aria_multi_line(Optional<String> const&) = 0;
|
||||
|
||||
virtual Optional<String> aria_multi_selectable() const = 0;
|
||||
virtual WebIDL::ExceptionOr<void> set_aria_multi_selectable(Optional<String> const&) = 0;
|
||||
|
||||
virtual Optional<String> aria_orientation() const = 0;
|
||||
virtual WebIDL::ExceptionOr<void> set_aria_orientation(Optional<String> const&) = 0;
|
||||
|
||||
virtual Optional<String> aria_owns() const = 0;
|
||||
virtual WebIDL::ExceptionOr<void> set_aria_owns(Optional<String> const&) = 0;
|
||||
|
||||
virtual Optional<String> aria_placeholder() const = 0;
|
||||
virtual WebIDL::ExceptionOr<void> set_aria_placeholder(Optional<String> const&) = 0;
|
||||
|
||||
virtual Optional<String> aria_pos_in_set() const = 0;
|
||||
virtual WebIDL::ExceptionOr<void> set_aria_pos_in_set(Optional<String> const&) = 0;
|
||||
|
||||
virtual Optional<String> aria_pressed() const = 0;
|
||||
virtual WebIDL::ExceptionOr<void> set_aria_pressed(Optional<String> const&) = 0;
|
||||
|
||||
virtual Optional<String> aria_read_only() const = 0;
|
||||
virtual WebIDL::ExceptionOr<void> set_aria_read_only(Optional<String> const&) = 0;
|
||||
|
||||
virtual Optional<String> aria_relevant() const = 0;
|
||||
virtual WebIDL::ExceptionOr<void> set_aria_relevant(Optional<String> const&) = 0;
|
||||
|
||||
virtual Optional<String> aria_required() const = 0;
|
||||
virtual WebIDL::ExceptionOr<void> set_aria_required(Optional<String> const&) = 0;
|
||||
|
||||
virtual Optional<String> aria_role_description() const = 0;
|
||||
virtual WebIDL::ExceptionOr<void> set_aria_role_description(Optional<String> const&) = 0;
|
||||
|
||||
virtual Optional<String> aria_row_count() const = 0;
|
||||
virtual WebIDL::ExceptionOr<void> set_aria_row_count(Optional<String> const&) = 0;
|
||||
|
||||
virtual Optional<String> aria_row_index() const = 0;
|
||||
virtual WebIDL::ExceptionOr<void> set_aria_row_index(Optional<String> const&) = 0;
|
||||
|
||||
virtual Optional<String> aria_row_index_text() const = 0;
|
||||
virtual WebIDL::ExceptionOr<void> set_aria_row_index_text(Optional<String> const&) = 0;
|
||||
|
||||
virtual Optional<String> aria_row_span() const = 0;
|
||||
virtual WebIDL::ExceptionOr<void> set_aria_row_span(Optional<String> const&) = 0;
|
||||
|
||||
virtual Optional<String> aria_selected() const = 0;
|
||||
virtual WebIDL::ExceptionOr<void> set_aria_selected(Optional<String> const&) = 0;
|
||||
|
||||
virtual Optional<String> aria_set_size() const = 0;
|
||||
virtual WebIDL::ExceptionOr<void> set_aria_set_size(Optional<String> const&) = 0;
|
||||
|
||||
virtual Optional<String> aria_sort() const = 0;
|
||||
virtual WebIDL::ExceptionOr<void> set_aria_sort(Optional<String> const&) = 0;
|
||||
|
||||
virtual Optional<String> aria_value_max() const = 0;
|
||||
virtual WebIDL::ExceptionOr<void> set_aria_value_max(Optional<String> const&) = 0;
|
||||
|
||||
virtual Optional<String> aria_value_min() const = 0;
|
||||
virtual WebIDL::ExceptionOr<void> set_aria_value_min(Optional<String> const&) = 0;
|
||||
|
||||
virtual Optional<String> aria_value_now() const = 0;
|
||||
virtual WebIDL::ExceptionOr<void> set_aria_value_now(Optional<String> const&) = 0;
|
||||
|
||||
virtual Optional<String> aria_value_text() const = 0;
|
||||
virtual WebIDL::ExceptionOr<void> set_aria_value_text(Optional<String> const&) = 0;
|
||||
#define __ENUMERATE_ARIA_ATTRIBUTE(name, attribute) \
|
||||
virtual Optional<String> name() const = 0; \
|
||||
virtual WebIDL::ExceptionOr<void> set_##name(Optional<String> const&) = 0;
|
||||
ENUMERATE_ARIA_ATTRIBUTES
|
||||
#undef __ENUMERATE_ARIA_ATTRIBUTE
|
||||
|
||||
// https://www.w3.org/TR/html-aria/#docconformance
|
||||
virtual Optional<Role> default_role() const { return {}; }
|
||||
|
|
16
Libraries/LibWeb/ARIA/AttributeNames.cpp
Normal file
16
Libraries/LibWeb/ARIA/AttributeNames.cpp
Normal file
|
@ -0,0 +1,16 @@
|
|||
/*
|
||||
* Copyright (c) 2024, Tim Flynn <trflynn89@ladybird.org>
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-2-Clause
|
||||
*/
|
||||
|
||||
#include <LibWeb/ARIA/AttributeNames.h>
|
||||
|
||||
namespace Web::ARIA::AttributeNames {
|
||||
|
||||
#define __ENUMERATE_ARIA_ATTRIBUTE(name, attribute) \
|
||||
FlyString name = attribute##_fly_string;
|
||||
ENUMERATE_ARIA_ATTRIBUTES
|
||||
#undef __ENUMERATE_ARIA_ATTRIBUTE
|
||||
|
||||
}
|
75
Libraries/LibWeb/ARIA/AttributeNames.h
Normal file
75
Libraries/LibWeb/ARIA/AttributeNames.h
Normal file
|
@ -0,0 +1,75 @@
|
|||
/*
|
||||
* Copyright (c) 2024, Tim Flynn <trflynn89@ladybird.org>
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-2-Clause
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <AK/FlyString.h>
|
||||
|
||||
namespace Web::ARIA::AttributeNames {
|
||||
|
||||
// https://www.w3.org/TR/wai-aria-1.2/#accessibilityroleandproperties-correspondence
|
||||
#define ENUMERATE_ARIA_ATTRIBUTES \
|
||||
__ENUMERATE_ARIA_ATTRIBUTE(role, "role") \
|
||||
__ENUMERATE_ARIA_ATTRIBUTE(aria_active_descendant, "aria-activedescendant") \
|
||||
__ENUMERATE_ARIA_ATTRIBUTE(aria_atomic, "aria-atomic") \
|
||||
__ENUMERATE_ARIA_ATTRIBUTE(aria_auto_complete, "aria-autocomplete") \
|
||||
__ENUMERATE_ARIA_ATTRIBUTE(aria_braille_label, "aria-braillelabel") \
|
||||
__ENUMERATE_ARIA_ATTRIBUTE(aria_braille_role_description, "aria-brailleroledescription") \
|
||||
__ENUMERATE_ARIA_ATTRIBUTE(aria_busy, "aria-busy") \
|
||||
__ENUMERATE_ARIA_ATTRIBUTE(aria_checked, "aria-checked") \
|
||||
__ENUMERATE_ARIA_ATTRIBUTE(aria_col_count, "aria-colcount") \
|
||||
__ENUMERATE_ARIA_ATTRIBUTE(aria_col_index, "aria-colindex") \
|
||||
__ENUMERATE_ARIA_ATTRIBUTE(aria_col_index_text, "aria-colindextext") \
|
||||
__ENUMERATE_ARIA_ATTRIBUTE(aria_col_span, "aria-colspan") \
|
||||
__ENUMERATE_ARIA_ATTRIBUTE(aria_controls, "aria-controls") \
|
||||
__ENUMERATE_ARIA_ATTRIBUTE(aria_current, "aria-current") \
|
||||
__ENUMERATE_ARIA_ATTRIBUTE(aria_described_by, "aria-describedby") \
|
||||
__ENUMERATE_ARIA_ATTRIBUTE(aria_description, "aria-description") \
|
||||
__ENUMERATE_ARIA_ATTRIBUTE(aria_details, "aria-details") \
|
||||
__ENUMERATE_ARIA_ATTRIBUTE(aria_drop_effect, "aria-dropeffect") \
|
||||
__ENUMERATE_ARIA_ATTRIBUTE(aria_error_message, "aria-errormessage") \
|
||||
__ENUMERATE_ARIA_ATTRIBUTE(aria_disabled, "aria-disabled") \
|
||||
__ENUMERATE_ARIA_ATTRIBUTE(aria_expanded, "aria-expanded") \
|
||||
__ENUMERATE_ARIA_ATTRIBUTE(aria_flow_to, "aria-flowto") \
|
||||
__ENUMERATE_ARIA_ATTRIBUTE(aria_grabbed, "aria-grabbed") \
|
||||
__ENUMERATE_ARIA_ATTRIBUTE(aria_has_popup, "aria-haspopup") \
|
||||
__ENUMERATE_ARIA_ATTRIBUTE(aria_hidden, "aria-hidden") \
|
||||
__ENUMERATE_ARIA_ATTRIBUTE(aria_invalid, "aria-invalid") \
|
||||
__ENUMERATE_ARIA_ATTRIBUTE(aria_key_shortcuts, "aria-keyshortcuts") \
|
||||
__ENUMERATE_ARIA_ATTRIBUTE(aria_label, "aria-label") \
|
||||
__ENUMERATE_ARIA_ATTRIBUTE(aria_labelled_by, "aria-labelledby") \
|
||||
__ENUMERATE_ARIA_ATTRIBUTE(aria_level, "aria-level") \
|
||||
__ENUMERATE_ARIA_ATTRIBUTE(aria_live, "aria-live") \
|
||||
__ENUMERATE_ARIA_ATTRIBUTE(aria_modal, "aria-modal") \
|
||||
__ENUMERATE_ARIA_ATTRIBUTE(aria_multi_line, "aria-multiline") \
|
||||
__ENUMERATE_ARIA_ATTRIBUTE(aria_multi_selectable, "aria-multiselectable") \
|
||||
__ENUMERATE_ARIA_ATTRIBUTE(aria_orientation, "aria-orientation") \
|
||||
__ENUMERATE_ARIA_ATTRIBUTE(aria_owns, "aria-owns") \
|
||||
__ENUMERATE_ARIA_ATTRIBUTE(aria_placeholder, "aria-placeholder") \
|
||||
__ENUMERATE_ARIA_ATTRIBUTE(aria_pos_in_set, "aria-posinset") \
|
||||
__ENUMERATE_ARIA_ATTRIBUTE(aria_pressed, "aria-pressed") \
|
||||
__ENUMERATE_ARIA_ATTRIBUTE(aria_read_only, "aria-readonly") \
|
||||
__ENUMERATE_ARIA_ATTRIBUTE(aria_relevant, "aria-relevant") \
|
||||
__ENUMERATE_ARIA_ATTRIBUTE(aria_required, "aria-required") \
|
||||
__ENUMERATE_ARIA_ATTRIBUTE(aria_role_description, "aria-roledescription") \
|
||||
__ENUMERATE_ARIA_ATTRIBUTE(aria_row_count, "aria-rowcount") \
|
||||
__ENUMERATE_ARIA_ATTRIBUTE(aria_row_index, "aria-rowindex") \
|
||||
__ENUMERATE_ARIA_ATTRIBUTE(aria_row_index_text, "aria-rowindextext") \
|
||||
__ENUMERATE_ARIA_ATTRIBUTE(aria_row_span, "aria-rowspan") \
|
||||
__ENUMERATE_ARIA_ATTRIBUTE(aria_selected, "aria-selected") \
|
||||
__ENUMERATE_ARIA_ATTRIBUTE(aria_set_size, "aria-setsize") \
|
||||
__ENUMERATE_ARIA_ATTRIBUTE(aria_sort, "aria-sort") \
|
||||
__ENUMERATE_ARIA_ATTRIBUTE(aria_value_max, "aria-valuemax") \
|
||||
__ENUMERATE_ARIA_ATTRIBUTE(aria_value_min, "aria-valuemin") \
|
||||
__ENUMERATE_ARIA_ATTRIBUTE(aria_value_now, "aria-valuenow") \
|
||||
__ENUMERATE_ARIA_ATTRIBUTE(aria_value_text, "aria-valuetext")
|
||||
|
||||
#define __ENUMERATE_ARIA_ATTRIBUTE(name, attribute) \
|
||||
extern FlyString name;
|
||||
ENUMERATE_ARIA_ATTRIBUTES
|
||||
#undef __ENUMERATE_ARIA_ATTRIBUTE
|
||||
|
||||
}
|
|
@ -17,6 +17,7 @@ set(SOURCES
|
|||
Animations/PseudoElementParsing.cpp
|
||||
ARIA/AriaData.cpp
|
||||
ARIA/ARIAMixin.cpp
|
||||
ARIA/AttributeNames.cpp
|
||||
ARIA/Roles.cpp
|
||||
ARIA/RoleType.cpp
|
||||
ARIA/StateAndProperties.cpp
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
|
||||
#include <AK/Optional.h>
|
||||
#include <LibWeb/ARIA/ARIAMixin.h>
|
||||
#include <LibWeb/ARIA/AttributeNames.h>
|
||||
#include <LibWeb/Animations/Animatable.h>
|
||||
#include <LibWeb/Bindings/ElementPrototype.h>
|
||||
#include <LibWeb/Bindings/Intrinsics.h>
|
||||
|
@ -271,78 +272,22 @@ public:
|
|||
ErrorOr<void> scroll_into_view(Optional<Variant<bool, ScrollIntoViewOptions>> = {});
|
||||
|
||||
// https://www.w3.org/TR/wai-aria-1.2/#ARIAMixin
|
||||
#define ARIA_IMPL(name, attribute) \
|
||||
#define __ENUMERATE_ARIA_ATTRIBUTE(name, attribute) \
|
||||
Optional<String> name() const override \
|
||||
{ \
|
||||
return get_attribute(attribute); \
|
||||
return get_attribute(ARIA::AttributeNames::name); \
|
||||
} \
|
||||
\
|
||||
WebIDL::ExceptionOr<void> set_##name(Optional<String> const& value) override \
|
||||
{ \
|
||||
if (value.has_value()) \
|
||||
TRY(set_attribute(attribute, *value)); \
|
||||
TRY(set_attribute(ARIA::AttributeNames::name, *value)); \
|
||||
else \
|
||||
remove_attribute(attribute); \
|
||||
remove_attribute(ARIA::AttributeNames::name); \
|
||||
return {}; \
|
||||
}
|
||||
|
||||
// https://www.w3.org/TR/wai-aria-1.2/#accessibilityroleandproperties-correspondence
|
||||
ARIA_IMPL(role, "role"_fly_string);
|
||||
ARIA_IMPL(aria_active_descendant, "aria-activedescendant"_fly_string);
|
||||
ARIA_IMPL(aria_atomic, "aria-atomic"_fly_string);
|
||||
ARIA_IMPL(aria_auto_complete, "aria-autocomplete"_fly_string);
|
||||
ARIA_IMPL(aria_braille_label, "aria-braillelabel"_fly_string);
|
||||
ARIA_IMPL(aria_braille_role_description, "aria-brailleroledescription"_fly_string);
|
||||
ARIA_IMPL(aria_busy, "aria-busy"_fly_string);
|
||||
ARIA_IMPL(aria_checked, "aria-checked"_fly_string);
|
||||
ARIA_IMPL(aria_col_count, "aria-colcount"_fly_string);
|
||||
ARIA_IMPL(aria_col_index, "aria-colindex"_fly_string);
|
||||
ARIA_IMPL(aria_col_index_text, "aria-colindextext"_fly_string);
|
||||
ARIA_IMPL(aria_col_span, "aria-colspan"_fly_string);
|
||||
ARIA_IMPL(aria_controls, "aria-controls"_fly_string);
|
||||
ARIA_IMPL(aria_current, "aria-current"_fly_string);
|
||||
ARIA_IMPL(aria_described_by, "aria-describedby"_fly_string);
|
||||
ARIA_IMPL(aria_description, "aria-description"_fly_string);
|
||||
ARIA_IMPL(aria_details, "aria-details"_fly_string);
|
||||
ARIA_IMPL(aria_drop_effect, "aria-dropeffect"_fly_string);
|
||||
ARIA_IMPL(aria_error_message, "aria-errormessage"_fly_string);
|
||||
ARIA_IMPL(aria_disabled, "aria-disabled"_fly_string);
|
||||
ARIA_IMPL(aria_expanded, "aria-expanded"_fly_string);
|
||||
ARIA_IMPL(aria_flow_to, "aria-flowto"_fly_string);
|
||||
ARIA_IMPL(aria_grabbed, "aria-grabbed"_fly_string);
|
||||
ARIA_IMPL(aria_has_popup, "aria-haspopup"_fly_string);
|
||||
ARIA_IMPL(aria_hidden, "aria-hidden"_fly_string);
|
||||
ARIA_IMPL(aria_invalid, "aria-invalid"_fly_string);
|
||||
ARIA_IMPL(aria_key_shortcuts, "aria-keyshortcuts"_fly_string);
|
||||
ARIA_IMPL(aria_label, "aria-label"_fly_string);
|
||||
ARIA_IMPL(aria_labelled_by, "aria-labelledby"_fly_string);
|
||||
ARIA_IMPL(aria_level, "aria-level"_fly_string);
|
||||
ARIA_IMPL(aria_live, "aria-live"_fly_string);
|
||||
ARIA_IMPL(aria_modal, "aria-modal"_fly_string);
|
||||
ARIA_IMPL(aria_multi_line, "aria-multiline"_fly_string);
|
||||
ARIA_IMPL(aria_multi_selectable, "aria-multiselectable"_fly_string);
|
||||
ARIA_IMPL(aria_orientation, "aria-orientation"_fly_string);
|
||||
ARIA_IMPL(aria_owns, "aria-owns"_fly_string);
|
||||
ARIA_IMPL(aria_placeholder, "aria-placeholder"_fly_string);
|
||||
ARIA_IMPL(aria_pos_in_set, "aria-posinset"_fly_string);
|
||||
ARIA_IMPL(aria_pressed, "aria-pressed"_fly_string);
|
||||
ARIA_IMPL(aria_read_only, "aria-readonly"_fly_string);
|
||||
ARIA_IMPL(aria_relevant, "aria-relevant"_fly_string);
|
||||
ARIA_IMPL(aria_required, "aria-required"_fly_string);
|
||||
ARIA_IMPL(aria_role_description, "aria-roledescription"_fly_string);
|
||||
ARIA_IMPL(aria_row_count, "aria-rowcount"_fly_string);
|
||||
ARIA_IMPL(aria_row_index, "aria-rowindex"_fly_string);
|
||||
ARIA_IMPL(aria_row_index_text, "aria-rowindextext"_fly_string);
|
||||
ARIA_IMPL(aria_row_span, "aria-rowspan"_fly_string);
|
||||
ARIA_IMPL(aria_selected, "aria-selected"_fly_string);
|
||||
ARIA_IMPL(aria_set_size, "aria-setsize"_fly_string);
|
||||
ARIA_IMPL(aria_sort, "aria-sort"_fly_string);
|
||||
ARIA_IMPL(aria_value_max, "aria-valuemax"_fly_string);
|
||||
ARIA_IMPL(aria_value_min, "aria-valuemin"_fly_string);
|
||||
ARIA_IMPL(aria_value_now, "aria-valuenow"_fly_string);
|
||||
ARIA_IMPL(aria_value_text, "aria-valuetext"_fly_string);
|
||||
|
||||
#undef ARIA_IMPL
|
||||
ENUMERATE_ARIA_ATTRIBUTES
|
||||
#undef __ENUMERATE_ARIA_ATTRIBUTE
|
||||
|
||||
virtual bool exclude_from_accessibility_tree() const override;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue