diff --git a/Userland/Libraries/LibWeb/DOM/Element.cpp b/Userland/Libraries/LibWeb/DOM/Element.cpp index 1a4cd39e07..66a8dac55d 100644 --- a/Userland/Libraries/LibWeb/DOM/Element.cpp +++ b/Userland/Libraries/LibWeb/DOM/Element.cpp @@ -131,7 +131,7 @@ void Element::visit_edges(Cell::Visitor& visitor) } // https://dom.spec.whatwg.org/#dom-element-getattribute -DeprecatedString Element::get_attribute(DeprecatedFlyString const& name) const +DeprecatedString Element::get_attribute(StringView name) const { // 1. Let attr be the result of getting an attribute given qualifiedName and this. auto const* attribute = m_attributes->get_attribute(name); @@ -145,7 +145,7 @@ DeprecatedString Element::get_attribute(DeprecatedFlyString const& name) const } // https://dom.spec.whatwg.org/#concept-element-attributes-get-value -DeprecatedString Element::get_attribute_value(DeprecatedFlyString const& local_name, DeprecatedFlyString const& namespace_) const +DeprecatedString Element::get_attribute_value(StringView local_name, DeprecatedFlyString const& namespace_) const { // 1. Let attr be the result of getting an attribute given namespace, localName, and element. auto const* attribute = m_attributes->get_attribute_ns(namespace_, local_name); diff --git a/Userland/Libraries/LibWeb/DOM/Element.h b/Userland/Libraries/LibWeb/DOM/Element.h index 090ef6b08e..3abe140779 100644 --- a/Userland/Libraries/LibWeb/DOM/Element.h +++ b/Userland/Libraries/LibWeb/DOM/Element.h @@ -96,8 +96,9 @@ public: bool has_attribute_ns(DeprecatedFlyString namespace_, DeprecatedFlyString const& name) const; bool has_attributes() const; - DeprecatedString deprecated_attribute(DeprecatedFlyString const& name) const { return get_attribute(name); } - Optional attribute(DeprecatedFlyString const& name) const + // FIXME: This should be taking a 'FlyString const&' + DeprecatedString deprecated_attribute(StringView name) const { return get_attribute(name); } + Optional attribute(StringView name) const { auto ret = deprecated_attribute(name); if (ret.is_null()) @@ -106,8 +107,8 @@ public: } // FIXME: This should be taking a 'FlyString const&' / 'Optional const&' - DeprecatedString get_attribute(DeprecatedFlyString const& name) const; - DeprecatedString get_attribute_value(DeprecatedFlyString const& local_name, DeprecatedFlyString const& namespace_ = {}) const; + DeprecatedString get_attribute(StringView name) const; + DeprecatedString get_attribute_value(StringView local_name, DeprecatedFlyString const& namespace_ = {}) const; WebIDL::ExceptionOr set_attribute(DeprecatedFlyString const& name, DeprecatedString const& value); WebIDL::ExceptionOr set_attribute(DeprecatedFlyString const& name, Optional const& value); @@ -264,55 +265,55 @@ public: } // https://www.w3.org/TR/wai-aria-1.2/#accessibilityroleandproperties-correspondence - ARIA_IMPL(role, "role"); - ARIA_IMPL(aria_active_descendant, "aria-activedescendant"); - ARIA_IMPL(aria_atomic, "aria-atomic"); - ARIA_IMPL(aria_auto_complete, "aria-autocomplete"); - ARIA_IMPL(aria_busy, "aria-busy"); - ARIA_IMPL(aria_checked, "aria-checked"); - ARIA_IMPL(aria_col_count, "aria-colcount"); - ARIA_IMPL(aria_col_index, "aria-colindex"); - ARIA_IMPL(aria_col_span, "aria-colspan"); - ARIA_IMPL(aria_controls, "aria-controls"); - ARIA_IMPL(aria_current, "aria-current"); - ARIA_IMPL(aria_described_by, "aria-describedby"); - ARIA_IMPL(aria_details, "aria-details"); - ARIA_IMPL(aria_drop_effect, "aria-dropeffect"); - ARIA_IMPL(aria_error_message, "aria-errormessage"); - ARIA_IMPL(aria_disabled, "aria-disabled"); - ARIA_IMPL(aria_expanded, "aria-expanded"); - ARIA_IMPL(aria_flow_to, "aria-flowto"); - ARIA_IMPL(aria_grabbed, "aria-grabbed"); - ARIA_IMPL(aria_has_popup, "aria-haspopup"); - ARIA_IMPL(aria_hidden, "aria-hidden"); - ARIA_IMPL(aria_invalid, "aria-invalid"); - ARIA_IMPL(aria_key_shortcuts, "aria-keyshortcuts"); - ARIA_IMPL(aria_label, "aria-label"); - ARIA_IMPL(aria_labelled_by, "aria-labelledby"); - ARIA_IMPL(aria_level, "aria-level"); - ARIA_IMPL(aria_live, "aria-live"); - ARIA_IMPL(aria_modal, "aria-modal"); - ARIA_IMPL(aria_multi_line, "aria-multiline"); - ARIA_IMPL(aria_multi_selectable, "aria-multiselectable"); - ARIA_IMPL(aria_orientation, "aria-orientation"); - ARIA_IMPL(aria_owns, "aria-owns"); - ARIA_IMPL(aria_placeholder, "aria-placeholder"); - ARIA_IMPL(aria_pos_in_set, "aria-posinset"); - ARIA_IMPL(aria_pressed, "aria-pressed"); - ARIA_IMPL(aria_read_only, "aria-readonly"); - ARIA_IMPL(aria_relevant, "aria-relevant"); - ARIA_IMPL(aria_required, "aria-required"); - ARIA_IMPL(aria_role_description, "aria-roledescription"); - ARIA_IMPL(aria_row_count, "aria-rowcount"); - ARIA_IMPL(aria_row_index, "aria-rowindex"); - ARIA_IMPL(aria_row_span, "aria-rowspan"); - ARIA_IMPL(aria_selected, "aria-selected"); - ARIA_IMPL(aria_set_size, "aria-setsize"); - ARIA_IMPL(aria_sort, "aria-sort"); - ARIA_IMPL(aria_value_max, "aria-valuemax"); - ARIA_IMPL(aria_value_min, "aria-valuemin"); - ARIA_IMPL(aria_value_now, "aria-valuenow"); - ARIA_IMPL(aria_value_text, "aria-valuetext"); + ARIA_IMPL(role, "role"sv); + ARIA_IMPL(aria_active_descendant, "aria-activedescendant"sv); + ARIA_IMPL(aria_atomic, "aria-atomic"sv); + ARIA_IMPL(aria_auto_complete, "aria-autocomplete"sv); + ARIA_IMPL(aria_busy, "aria-busy"sv); + ARIA_IMPL(aria_checked, "aria-checked"sv); + ARIA_IMPL(aria_col_count, "aria-colcount"sv); + ARIA_IMPL(aria_col_index, "aria-colindex"sv); + ARIA_IMPL(aria_col_span, "aria-colspan"sv); + ARIA_IMPL(aria_controls, "aria-controls"sv); + ARIA_IMPL(aria_current, "aria-current"sv); + ARIA_IMPL(aria_described_by, "aria-describedby"sv); + ARIA_IMPL(aria_details, "aria-details"sv); + ARIA_IMPL(aria_drop_effect, "aria-dropeffect"sv); + ARIA_IMPL(aria_error_message, "aria-errormessage"sv); + ARIA_IMPL(aria_disabled, "aria-disabled"sv); + ARIA_IMPL(aria_expanded, "aria-expanded"sv); + ARIA_IMPL(aria_flow_to, "aria-flowto"sv); + ARIA_IMPL(aria_grabbed, "aria-grabbed"sv); + ARIA_IMPL(aria_has_popup, "aria-haspopup"sv); + ARIA_IMPL(aria_hidden, "aria-hidden"sv); + ARIA_IMPL(aria_invalid, "aria-invalid"sv); + ARIA_IMPL(aria_key_shortcuts, "aria-keyshortcuts"sv); + ARIA_IMPL(aria_label, "aria-label"sv); + ARIA_IMPL(aria_labelled_by, "aria-labelledby"sv); + ARIA_IMPL(aria_level, "aria-level"sv); + ARIA_IMPL(aria_live, "aria-live"sv); + ARIA_IMPL(aria_modal, "aria-modal"sv); + ARIA_IMPL(aria_multi_line, "aria-multiline"sv); + ARIA_IMPL(aria_multi_selectable, "aria-multiselectable"sv); + ARIA_IMPL(aria_orientation, "aria-orientation"sv); + ARIA_IMPL(aria_owns, "aria-owns"sv); + ARIA_IMPL(aria_placeholder, "aria-placeholder"sv); + ARIA_IMPL(aria_pos_in_set, "aria-posinset"sv); + ARIA_IMPL(aria_pressed, "aria-pressed"sv); + ARIA_IMPL(aria_read_only, "aria-readonly"sv); + ARIA_IMPL(aria_relevant, "aria-relevant"sv); + ARIA_IMPL(aria_required, "aria-required"sv); + ARIA_IMPL(aria_role_description, "aria-roledescription"sv); + ARIA_IMPL(aria_row_count, "aria-rowcount"sv); + ARIA_IMPL(aria_row_index, "aria-rowindex"sv); + ARIA_IMPL(aria_row_span, "aria-rowspan"sv); + ARIA_IMPL(aria_selected, "aria-selected"sv); + ARIA_IMPL(aria_set_size, "aria-setsize"sv); + ARIA_IMPL(aria_sort, "aria-sort"sv); + ARIA_IMPL(aria_value_max, "aria-valuemax"sv); + ARIA_IMPL(aria_value_min, "aria-valuemin"sv); + ARIA_IMPL(aria_value_now, "aria-valuenow"sv); + ARIA_IMPL(aria_value_text, "aria-valuetext"sv); #undef ARIA_IMPL diff --git a/Userland/Libraries/LibWeb/HTML/HTMLHeadingElement.h b/Userland/Libraries/LibWeb/HTML/HTMLHeadingElement.h index 870b914a5e..4452bbd03f 100644 --- a/Userland/Libraries/LibWeb/HTML/HTMLHeadingElement.h +++ b/Userland/Libraries/LibWeb/HTML/HTMLHeadingElement.h @@ -25,7 +25,7 @@ public: virtual DeprecatedString aria_level() const override { // TODO: aria-level = the number in the element's tag name - return get_attribute("aria-level"); + return get_attribute("aria-level"sv); } private: diff --git a/Userland/Libraries/LibWeb/HTML/HTMLInputElement.cpp b/Userland/Libraries/LibWeb/HTML/HTMLInputElement.cpp index 60418f0e51..e7642be91f 100644 --- a/Userland/Libraries/LibWeb/HTML/HTMLInputElement.cpp +++ b/Userland/Libraries/LibWeb/HTML/HTMLInputElement.cpp @@ -1088,7 +1088,7 @@ Optional HTMLInputElement::default_role() const if (type_state() == TypeAttributeState::Checkbox) return ARIA::Role::checkbox; // https://www.w3.org/TR/html-aria/#el-input-email - if (type_state() == TypeAttributeState::Email && deprecated_attribute("list").is_null()) + if (type_state() == TypeAttributeState::Email && !has_attribute(AttributeNames::list)) return ARIA::Role::textbox; // https://www.w3.org/TR/html-aria/#el-input-image if (type_state() == TypeAttributeState::ImageButton) @@ -1111,10 +1111,10 @@ Optional HTMLInputElement::default_role() const || type_state() == TypeAttributeState::Telephone || type_state() == TypeAttributeState::URL || type_state() == TypeAttributeState::Email) - && !deprecated_attribute("list").is_null()) + && has_attribute(AttributeNames::list)) return ARIA::Role::combobox; // https://www.w3.org/TR/html-aria/#el-input-search - if (type_state() == TypeAttributeState::Search && deprecated_attribute("list").is_null()) + if (type_state() == TypeAttributeState::Search && !has_attribute(AttributeNames::list)) return ARIA::Role::textbox; // https://www.w3.org/TR/html-aria/#el-input-submit if (type_state() == TypeAttributeState::SubmitButton) @@ -1123,10 +1123,10 @@ Optional HTMLInputElement::default_role() const if (type_state() == TypeAttributeState::Telephone) return ARIA::Role::textbox; // https://www.w3.org/TR/html-aria/#el-input-text - if (type_state() == TypeAttributeState::Text && deprecated_attribute("list").is_null()) + if (type_state() == TypeAttributeState::Text && !has_attribute(AttributeNames::list)) return ARIA::Role::textbox; // https://www.w3.org/TR/html-aria/#el-input-url - if (type_state() == TypeAttributeState::URL && deprecated_attribute("list").is_null()) + if (type_state() == TypeAttributeState::URL && !has_attribute(AttributeNames::list)) return ARIA::Role::textbox; // https://www.w3.org/TR/html-aria/#el-input-color diff --git a/Userland/Libraries/LibWeb/HTML/HTMLSelectElement.cpp b/Userland/Libraries/LibWeb/HTML/HTMLSelectElement.cpp index ed81c15be0..ae9b70ea25 100644 --- a/Userland/Libraries/LibWeb/HTML/HTMLSelectElement.cpp +++ b/Userland/Libraries/LibWeb/HTML/HTMLSelectElement.cpp @@ -167,7 +167,7 @@ Optional HTMLSelectElement::default_role() const if (has_attribute(AttributeNames::multiple)) return ARIA::Role::listbox; if (has_attribute(AttributeNames::size)) { - auto size_attribute = deprecated_attribute("size").to_int(); + auto size_attribute = deprecated_attribute(AttributeNames::size).to_int(); if (size_attribute.has_value() && size_attribute.value() > 1) return ARIA::Role::listbox; } diff --git a/Userland/Services/WebContent/WebDriverConnection.cpp b/Userland/Services/WebContent/WebDriverConnection.cpp index 7b2dd1e38c..9527df963b 100644 --- a/Userland/Services/WebContent/WebDriverConnection.cpp +++ b/Userland/Services/WebContent/WebDriverConnection.cpp @@ -1345,7 +1345,7 @@ Messages::WebDriverClient::ElementClickResponse WebDriverConnection::element_cli // 3. If element’s container has the multiple attribute, toggle the element’s selectedness state // by setting it to the opposite value of its current selectedness. - if (parent_node.has_value() && parent_node->has_attribute("multiple")) { + if (parent_node.has_value() && parent_node->has_attribute(Web::HTML::AttributeNames::multiple)) { option_element.set_selected(!option_element.selected()); } // Otherwise, set the element’s selectedness state to true.