1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-28 16:37:47 +00:00

LibWeb: Port Element interface from DeprecatedString

This is the last IDL interface which was using DeprecatedString! :^)
This commit is contained in:
Shannon Booth 2023-10-06 07:43:52 +13:00 committed by Andreas Kling
parent 274e0f4988
commit 4321606bba
12 changed files with 295 additions and 251 deletions

View file

@ -14,10 +14,13 @@ namespace Web::ARIA {
Optional<Role> ARIAMixin::role_or_default() const
{
// 1. Use the rules of the host language to detect that an element has a role attribute and to identify the attribute value string for it.
auto role_string = role();
auto maybe_role_string = role();
if (!maybe_role_string.has_value())
return default_role();
// 2. Separate the attribute value string for that attribute into a sequence of whitespace-free substrings by separating on whitespace.
auto role_list = role_string.split_view(Infra::is_ascii_whitespace);
auto role_string = maybe_role_string.value();
auto role_list = role_string.bytes_as_string_view().split_view_if(Infra::is_ascii_whitespace);
// 3. Compare the substrings to all the names of the non-abstract WAI-ARIA roles. Case-sensitivity of the comparison inherits from the case-sensitivity of the host language.
for (auto const& role_name : role_list) {
@ -38,27 +41,27 @@ Optional<Role> ARIAMixin::role_or_default() const
// https://www.w3.org/TR/wai-aria-1.2/#global_states
bool ARIAMixin::has_global_aria_attribute() const
{
return !aria_atomic().is_null()
|| !aria_busy().is_null()
|| !aria_controls().is_null()
|| !aria_current().is_null()
|| !aria_described_by().is_null()
|| !aria_details().is_null()
|| !aria_disabled().is_null()
|| !aria_drop_effect().is_null()
|| !aria_error_message().is_null()
|| !aria_flow_to().is_null()
|| !aria_grabbed().is_null()
|| !aria_has_popup().is_null()
|| !aria_hidden().is_null()
|| !aria_invalid().is_null()
|| !aria_key_shortcuts().is_null()
|| !aria_label().is_null()
|| !aria_labelled_by().is_null()
|| !aria_live().is_null()
|| !aria_owns().is_null()
|| !aria_relevant().is_null()
|| !aria_role_description().is_null();
return aria_atomic().has_value()
|| aria_busy().has_value()
|| aria_controls().has_value()
|| aria_current().has_value()
|| aria_described_by().has_value()
|| aria_details().has_value()
|| aria_disabled().has_value()
|| aria_drop_effect().has_value()
|| aria_error_message().has_value()
|| aria_flow_to().has_value()
|| aria_grabbed().has_value()
|| aria_has_popup().has_value()
|| aria_hidden().has_value()
|| aria_invalid().has_value()
|| aria_key_shortcuts().has_value()
|| aria_label().has_value()
|| aria_labelled_by().has_value()
|| aria_live().has_value()
|| aria_owns().has_value()
|| aria_relevant().has_value()
|| aria_role_description().has_value();
}
Optional<DeprecatedString> ARIAMixin::parse_id_reference(DeprecatedString const& id_reference) const

View file

@ -19,152 +19,152 @@ class ARIAMixin {
public:
virtual ~ARIAMixin() = default;
virtual DeprecatedString role() const = 0;
virtual WebIDL::ExceptionOr<void> set_role(DeprecatedString const&) = 0;
virtual Optional<String> role() const = 0;
virtual WebIDL::ExceptionOr<void> set_role(Optional<String> const&) = 0;
virtual DeprecatedString aria_active_descendant() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_active_descendant(DeprecatedString const&) = 0;
virtual Optional<String> aria_active_descendant() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_active_descendant(Optional<String> const&) = 0;
virtual DeprecatedString aria_atomic() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_atomic(DeprecatedString const&) = 0;
virtual Optional<String> aria_atomic() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_atomic(Optional<String> const&) = 0;
virtual DeprecatedString aria_auto_complete() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_auto_complete(DeprecatedString const&) = 0;
virtual Optional<String> aria_auto_complete() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_auto_complete(Optional<String> const&) = 0;
virtual DeprecatedString aria_busy() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_busy(DeprecatedString const&) = 0;
virtual Optional<String> aria_busy() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_busy(Optional<String> const&) = 0;
virtual DeprecatedString aria_checked() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_checked(DeprecatedString const&) = 0;
virtual Optional<String> aria_checked() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_checked(Optional<String> const&) = 0;
virtual DeprecatedString aria_col_count() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_col_count(DeprecatedString const&) = 0;
virtual Optional<String> aria_col_count() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_col_count(Optional<String> const&) = 0;
virtual DeprecatedString aria_col_index() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_col_index(DeprecatedString const&) = 0;
virtual Optional<String> aria_col_index() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_col_index(Optional<String> const&) = 0;
virtual DeprecatedString aria_col_span() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_col_span(DeprecatedString const&) = 0;
virtual Optional<String> aria_col_span() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_col_span(Optional<String> const&) = 0;
virtual DeprecatedString aria_controls() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_controls(DeprecatedString const&) = 0;
virtual Optional<String> aria_controls() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_controls(Optional<String> const&) = 0;
virtual DeprecatedString aria_current() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_current(DeprecatedString const&) = 0;
virtual Optional<String> aria_current() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_current(Optional<String> const&) = 0;
virtual DeprecatedString aria_described_by() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_described_by(DeprecatedString const&) = 0;
virtual Optional<String> aria_described_by() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_described_by(Optional<String> const&) = 0;
virtual DeprecatedString aria_details() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_details(DeprecatedString const&) = 0;
virtual Optional<String> aria_details() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_details(Optional<String> const&) = 0;
virtual DeprecatedString aria_disabled() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_disabled(DeprecatedString const&) = 0;
virtual Optional<String> aria_disabled() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_disabled(Optional<String> const&) = 0;
virtual DeprecatedString aria_drop_effect() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_drop_effect(DeprecatedString const&) = 0;
virtual Optional<String> aria_drop_effect() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_drop_effect(Optional<String> const&) = 0;
virtual DeprecatedString aria_error_message() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_error_message(DeprecatedString const&) = 0;
virtual Optional<String> aria_error_message() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_error_message(Optional<String> const&) = 0;
virtual DeprecatedString aria_expanded() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_expanded(DeprecatedString const&) = 0;
virtual Optional<String> aria_expanded() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_expanded(Optional<String> const&) = 0;
virtual DeprecatedString aria_flow_to() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_flow_to(DeprecatedString const&) = 0;
virtual Optional<String> aria_flow_to() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_flow_to(Optional<String> const&) = 0;
virtual DeprecatedString aria_grabbed() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_grabbed(DeprecatedString const&) = 0;
virtual Optional<String> aria_grabbed() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_grabbed(Optional<String> const&) = 0;
virtual DeprecatedString aria_has_popup() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_has_popup(DeprecatedString const&) = 0;
virtual Optional<String> aria_has_popup() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_has_popup(Optional<String> const&) = 0;
virtual DeprecatedString aria_hidden() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_hidden(DeprecatedString const&) = 0;
virtual Optional<String> aria_hidden() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_hidden(Optional<String> const&) = 0;
virtual DeprecatedString aria_invalid() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_invalid(DeprecatedString const&) = 0;
virtual Optional<String> aria_invalid() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_invalid(Optional<String> const&) = 0;
virtual DeprecatedString aria_key_shortcuts() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_key_shortcuts(DeprecatedString const&) = 0;
virtual Optional<String> aria_key_shortcuts() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_key_shortcuts(Optional<String> const&) = 0;
virtual DeprecatedString aria_label() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_label(DeprecatedString const&) = 0;
virtual Optional<String> aria_label() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_label(Optional<String> const&) = 0;
virtual DeprecatedString aria_labelled_by() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_labelled_by(DeprecatedString const&) = 0;
virtual Optional<String> aria_labelled_by() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_labelled_by(Optional<String> const&) = 0;
virtual DeprecatedString aria_level() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_level(DeprecatedString const&) = 0;
virtual Optional<String> aria_level() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_level(Optional<String> const&) = 0;
virtual DeprecatedString aria_live() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_live(DeprecatedString const&) = 0;
virtual Optional<String> aria_live() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_live(Optional<String> const&) = 0;
virtual DeprecatedString aria_modal() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_modal(DeprecatedString const&) = 0;
virtual Optional<String> aria_modal() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_modal(Optional<String> const&) = 0;
virtual DeprecatedString aria_multi_line() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_multi_line(DeprecatedString const&) = 0;
virtual Optional<String> aria_multi_line() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_multi_line(Optional<String> const&) = 0;
virtual DeprecatedString aria_multi_selectable() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_multi_selectable(DeprecatedString const&) = 0;
virtual Optional<String> aria_multi_selectable() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_multi_selectable(Optional<String> const&) = 0;
virtual DeprecatedString aria_orientation() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_orientation(DeprecatedString const&) = 0;
virtual Optional<String> aria_orientation() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_orientation(Optional<String> const&) = 0;
virtual DeprecatedString aria_owns() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_owns(DeprecatedString const&) = 0;
virtual Optional<String> aria_owns() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_owns(Optional<String> const&) = 0;
virtual DeprecatedString aria_placeholder() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_placeholder(DeprecatedString const&) = 0;
virtual Optional<String> aria_placeholder() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_placeholder(Optional<String> const&) = 0;
virtual DeprecatedString aria_pos_in_set() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_pos_in_set(DeprecatedString 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 DeprecatedString aria_pressed() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_pressed(DeprecatedString const&) = 0;
virtual Optional<String> aria_pressed() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_pressed(Optional<String> const&) = 0;
virtual DeprecatedString aria_read_only() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_read_only(DeprecatedString const&) = 0;
virtual Optional<String> aria_read_only() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_read_only(Optional<String> const&) = 0;
virtual DeprecatedString aria_relevant() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_relevant(DeprecatedString const&) = 0;
virtual Optional<String> aria_relevant() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_relevant(Optional<String> const&) = 0;
virtual DeprecatedString aria_required() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_required(DeprecatedString const&) = 0;
virtual Optional<String> aria_required() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_required(Optional<String> const&) = 0;
virtual DeprecatedString aria_role_description() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_role_description(DeprecatedString const&) = 0;
virtual Optional<String> aria_role_description() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_role_description(Optional<String> const&) = 0;
virtual DeprecatedString aria_row_count() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_row_count(DeprecatedString const&) = 0;
virtual Optional<String> aria_row_count() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_row_count(Optional<String> const&) = 0;
virtual DeprecatedString aria_row_index() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_row_index(DeprecatedString const&) = 0;
virtual Optional<String> aria_row_index() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_row_index(Optional<String> const&) = 0;
virtual DeprecatedString aria_row_span() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_row_span(DeprecatedString const&) = 0;
virtual Optional<String> aria_row_span() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_row_span(Optional<String> const&) = 0;
virtual DeprecatedString aria_selected() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_selected(DeprecatedString const&) = 0;
virtual Optional<String> aria_selected() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_selected(Optional<String> const&) = 0;
virtual DeprecatedString aria_set_size() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_set_size(DeprecatedString const&) = 0;
virtual Optional<String> aria_set_size() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_set_size(Optional<String> const&) = 0;
virtual DeprecatedString aria_sort() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_sort(DeprecatedString const&) = 0;
virtual Optional<String> aria_sort() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_sort(Optional<String> const&) = 0;
virtual DeprecatedString aria_value_max() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_value_max(DeprecatedString const&) = 0;
virtual Optional<String> aria_value_max() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_value_max(Optional<String> const&) = 0;
virtual DeprecatedString aria_value_min() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_value_min(DeprecatedString const&) = 0;
virtual Optional<String> aria_value_min() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_value_min(Optional<String> const&) = 0;
virtual DeprecatedString aria_value_now() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_value_now(DeprecatedString const&) = 0;
virtual Optional<String> aria_value_now() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_value_now(Optional<String> const&) = 0;
virtual DeprecatedString aria_value_text() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_value_text(DeprecatedString const&) = 0;
virtual Optional<String> aria_value_text() const = 0;
virtual WebIDL::ExceptionOr<void> set_aria_value_text(Optional<String> const&) = 0;
// https://www.w3.org/TR/html-aria/#docconformance
virtual Optional<Role> default_role() const { return {}; }

View file

@ -9,9 +9,16 @@
namespace Web::ARIA {
static DeprecatedString to_deprecated_string(Optional<String> const& value)
{
if (!value.has_value())
return {};
return value->to_deprecated_string();
}
AriaData::AriaData(Web::ARIA::ARIAMixin const& source)
{
m_aria_active_descendant = source.aria_active_descendant();
m_aria_active_descendant = to_deprecated_string(source.aria_active_descendant());
m_aria_atomic = AriaData::parse_optional_true_false(source.aria_atomic());
m_aria_auto_complete = AriaData::parse_aria_autocomplete(source.aria_auto_complete());
m_aria_busy = AriaData::parse_true_false(source.aria_busy());
@ -19,36 +26,36 @@ AriaData::AriaData(Web::ARIA::ARIAMixin const& source)
m_aria_col_count = AriaData::parse_integer(source.aria_col_count());
m_aria_col_index = AriaData::parse_integer(source.aria_col_index());
m_aria_col_span = AriaData::parse_integer(source.aria_col_span());
m_aria_controls = source.parse_id_reference_list(source.aria_controls());
m_aria_controls = source.parse_id_reference_list(to_deprecated_string(source.aria_controls()));
m_aria_current = AriaData::parse_aria_current(source.aria_current());
m_aria_described_by = source.parse_id_reference_list(source.aria_described_by());
m_aria_details = source.parse_id_reference(source.aria_details());
m_aria_described_by = source.parse_id_reference_list(to_deprecated_string(source.aria_described_by()));
m_aria_details = source.parse_id_reference(to_deprecated_string(source.aria_details()));
m_aria_disabled = AriaData::parse_true_false(source.aria_disabled());
m_aria_drop_effect = AriaData::parse_aria_drop_effect(source.aria_drop_effect());
m_aria_error_message = source.parse_id_reference(source.aria_error_message());
m_aria_error_message = source.parse_id_reference(to_deprecated_string(source.aria_error_message()));
m_aria_expanded = AriaData::parse_true_false_undefined(source.aria_expanded());
m_aria_flow_to = source.parse_id_reference_list(source.aria_flow_to());
m_aria_flow_to = source.parse_id_reference_list(to_deprecated_string(source.aria_flow_to()));
m_aria_grabbed = AriaData::parse_true_false_undefined(source.aria_grabbed());
m_aria_has_popup = AriaData::parse_aria_has_popup(source.aria_has_popup());
m_aria_hidden = AriaData::parse_true_false_undefined(source.aria_hidden());
m_aria_invalid = AriaData::parse_aria_invalid(source.aria_invalid());
m_aria_key_shortcuts = source.aria_key_shortcuts();
m_aria_label = source.aria_label();
m_aria_labelled_by = source.parse_id_reference_list(source.aria_labelled_by());
m_aria_key_shortcuts = to_deprecated_string(source.aria_key_shortcuts());
m_aria_label = to_deprecated_string(source.aria_label());
m_aria_labelled_by = source.parse_id_reference_list(to_deprecated_string(source.aria_labelled_by()));
m_aria_level = AriaData::parse_integer(source.aria_level());
m_aria_live = AriaData::parse_aria_live(source.aria_live());
m_aria_modal = AriaData::parse_true_false(source.aria_modal());
m_aria_multi_line = AriaData::parse_true_false(source.aria_multi_line());
m_aria_multi_selectable = AriaData::parse_true_false(source.aria_multi_selectable());
m_aria_orientation = AriaData::parse_aria_orientation(source.aria_orientation());
m_aria_owns = source.parse_id_reference_list(source.aria_owns());
m_aria_placeholder = source.aria_placeholder();
m_aria_owns = source.parse_id_reference_list(to_deprecated_string(source.aria_owns()));
m_aria_placeholder = to_deprecated_string(source.aria_placeholder());
m_aria_pos_in_set = AriaData::parse_integer(source.aria_pos_in_set());
m_aria_pressed = AriaData::parse_tristate(source.aria_pressed());
m_aria_read_only = AriaData::parse_true_false(source.aria_read_only());
m_aria_relevant = AriaData::parse_aria_relevant(source.aria_relevant());
m_aria_required = AriaData::parse_true_false(source.aria_required());
m_aria_role_description = source.aria_role_description();
m_aria_role_description = to_deprecated_string(source.aria_role_description());
m_aria_row_count = AriaData::parse_integer(source.aria_row_count());
m_aria_row_index = AriaData::parse_integer(source.aria_row_index());
m_aria_row_span = AriaData::parse_integer(source.aria_row_span());
@ -58,10 +65,10 @@ AriaData::AriaData(Web::ARIA::ARIAMixin const& source)
m_aria_value_max = AriaData::parse_number(source.aria_value_max());
m_aria_value_min = AriaData::parse_number(source.aria_value_min());
m_aria_value_now = AriaData::parse_number(source.aria_value_now());
m_aria_value_text = source.aria_value_text();
m_aria_value_text = to_deprecated_string(source.aria_value_text());
}
bool AriaData::parse_true_false(StringView value)
bool AriaData::parse_true_false(Optional<String> const& value)
{
if (value == "true"sv)
return true;
@ -70,7 +77,7 @@ bool AriaData::parse_true_false(StringView value)
return false;
}
Tristate AriaData::parse_tristate(StringView value)
Tristate AriaData::parse_tristate(Optional<String> const& value)
{
if (value == "true"sv)
return Tristate::True;
@ -83,7 +90,7 @@ Tristate AriaData::parse_tristate(StringView value)
return Tristate::Undefined;
}
Optional<bool> AriaData::parse_true_false_undefined(StringView value)
Optional<bool> AriaData::parse_true_false_undefined(Optional<String> const& value)
{
if (value == "true"sv)
return true;
@ -94,14 +101,18 @@ Optional<bool> AriaData::parse_true_false_undefined(StringView value)
return {};
}
Optional<i32> AriaData::parse_integer(StringView value)
Optional<i32> AriaData::parse_integer(Optional<String> const& value)
{
return value.to_int();
if (!value.has_value())
return {};
return value->bytes_as_string_view().to_int();
}
Optional<f64> AriaData::parse_number(StringView value)
Optional<f64> AriaData::parse_number(Optional<String> const& value)
{
return value.to_double(TrimWhitespace::Yes);
if (!value.has_value())
return {};
return value->bytes_as_string_view().to_double(TrimWhitespace::Yes);
}
Optional<DeprecatedString> AriaData::aria_active_descendant_or_default() const
@ -361,7 +372,7 @@ DeprecatedString AriaData::aria_value_text_or_default() const
return m_aria_value_text;
}
AriaAutocomplete AriaData::parse_aria_autocomplete(StringView value)
AriaAutocomplete AriaData::parse_aria_autocomplete(Optional<String> const& value)
{
if (value == "inline"sv)
return AriaAutocomplete::Inline;
@ -374,7 +385,7 @@ AriaAutocomplete AriaData::parse_aria_autocomplete(StringView value)
return AriaAutocomplete::None;
}
AriaCurrent AriaData::parse_aria_current(StringView value)
AriaCurrent AriaData::parse_aria_current(Optional<String> const& value)
{
if (value == "page"sv)
return AriaCurrent::Page;
@ -393,11 +404,14 @@ AriaCurrent AriaData::parse_aria_current(StringView value)
return AriaCurrent::False;
}
Vector<AriaDropEffect> AriaData::parse_aria_drop_effect(StringView value)
Vector<AriaDropEffect> AriaData::parse_aria_drop_effect(Optional<String> const& value)
{
if (!value.has_value())
return {};
Vector<AriaDropEffect> result;
for (auto token : value.split_view_if(Infra::is_ascii_whitespace)) {
for (auto token : value->bytes_as_string_view().split_view_if(Infra::is_ascii_whitespace)) {
if (token == "copy"sv)
result.append(AriaDropEffect::Copy);
else if (token == "execute"sv)
@ -417,7 +431,7 @@ Vector<AriaDropEffect> AriaData::parse_aria_drop_effect(StringView value)
return result;
}
AriaHasPopup AriaData::parse_aria_has_popup(StringView value)
AriaHasPopup AriaData::parse_aria_has_popup(Optional<String> const& value)
{
if (value == "false"sv)
return AriaHasPopup::False;
@ -436,7 +450,7 @@ AriaHasPopup AriaData::parse_aria_has_popup(StringView value)
return AriaHasPopup::False;
}
AriaInvalid AriaData::parse_aria_invalid(StringView value)
AriaInvalid AriaData::parse_aria_invalid(Optional<String> const& value)
{
if (value == "grammar"sv)
return AriaInvalid::Grammar;
@ -449,7 +463,7 @@ AriaInvalid AriaData::parse_aria_invalid(StringView value)
return AriaInvalid::False;
}
Optional<AriaLive> AriaData::parse_aria_live(StringView value)
Optional<AriaLive> AriaData::parse_aria_live(Optional<String> const& value)
{
if (value == "assertive"sv)
return AriaLive::Assertive;
@ -460,7 +474,7 @@ Optional<AriaLive> AriaData::parse_aria_live(StringView value)
return {};
}
Optional<AriaOrientation> AriaData::parse_aria_orientation(StringView value)
Optional<AriaOrientation> AriaData::parse_aria_orientation(Optional<String> const& value)
{
if (value == "horizontal"sv)
return AriaOrientation::Horizontal;
@ -471,10 +485,13 @@ Optional<AriaOrientation> AriaData::parse_aria_orientation(StringView value)
return {};
}
Vector<AriaRelevant> AriaData::parse_aria_relevant(StringView value)
Vector<AriaRelevant> AriaData::parse_aria_relevant(Optional<String> const& value)
{
if (!value.has_value())
return {};
Vector<AriaRelevant> result;
auto tokens = value.split_view_if(Infra::is_ascii_whitespace);
auto tokens = value->bytes_as_string_view().split_view_if(Infra::is_ascii_whitespace);
for (size_t i = 0; i < tokens.size(); i++) {
if (tokens[i] == "additions"sv) {
if (i + 1 < tokens.size()) {
@ -504,7 +521,7 @@ Vector<AriaRelevant> AriaData::parse_aria_relevant(StringView value)
return result;
}
AriaSort AriaData::parse_aria_sort(StringView value)
AriaSort AriaData::parse_aria_sort(Optional<String> const& value)
{
if (value == "ascending"sv)
return AriaSort::Ascending;
@ -517,7 +534,7 @@ AriaSort AriaData::parse_aria_sort(StringView value)
return AriaSort::None;
}
Optional<bool> AriaData::parse_optional_true_false(StringView value)
Optional<bool> AriaData::parse_optional_true_false(Optional<String> const& value)
{
if (value == "true"sv)
return true;

View file

@ -205,32 +205,32 @@ private:
// https://www.w3.org/TR/wai-aria-1.2/#valuetype_true-false
// The default value for this value type is false unless otherwise specified.
static bool parse_true_false(StringView);
static bool parse_true_false(Optional<String> const&);
// https://www.w3.org/TR/wai-aria-1.2/#valuetype_tristate
// The default value for this value type is undefined unless otherwise specified.
static Tristate parse_tristate(StringView);
static Tristate parse_tristate(Optional<String> const&);
// https://www.w3.org/TR/wai-aria-1.2/#valuetype_true-false-undefined
// The default value for this value type is undefined unless otherwise specified.
static Optional<bool> parse_true_false_undefined(StringView);
static Optional<bool> parse_true_false_undefined(Optional<String> const&);
// https://www.w3.org/TR/wai-aria-1.2/#valuetype_integer
static Optional<i32> parse_integer(StringView);
static Optional<i32> parse_integer(Optional<String> const&);
// https://www.w3.org/TR/wai-aria-1.2/#valuetype_number
static Optional<f64> parse_number(StringView);
static Optional<f64> parse_number(Optional<String> const&);
static AriaAutocomplete parse_aria_autocomplete(StringView);
static AriaCurrent parse_aria_current(StringView);
static Vector<AriaDropEffect> parse_aria_drop_effect(StringView);
static AriaHasPopup parse_aria_has_popup(StringView);
static AriaInvalid parse_aria_invalid(StringView);
static Optional<AriaLive> parse_aria_live(StringView);
static Optional<AriaOrientation> parse_aria_orientation(StringView);
static Vector<AriaRelevant> parse_aria_relevant(StringView);
static AriaSort parse_aria_sort(StringView);
static Optional<bool> parse_optional_true_false(StringView);
static AriaAutocomplete parse_aria_autocomplete(Optional<String> const&);
static AriaCurrent parse_aria_current(Optional<String> const&);
static Vector<AriaDropEffect> parse_aria_drop_effect(Optional<String> const&);
static AriaHasPopup parse_aria_has_popup(Optional<String> const&);
static AriaInvalid parse_aria_invalid(Optional<String> const&);
static Optional<AriaLive> parse_aria_live(Optional<String> const&);
static Optional<AriaOrientation> parse_aria_orientation(Optional<String> const&);
static Vector<AriaRelevant> parse_aria_relevant(Optional<String> const&);
static AriaSort parse_aria_sort(Optional<String> const&);
static Optional<bool> parse_optional_true_false(Optional<String> const&);
Optional<DeprecatedString> m_aria_active_descendant;
Optional<bool> m_aria_atomic;