mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2026-04-19 10:20:22 +00:00
By making use of the WEB_PLATFORM_OBJECT macro we can remove the boilerplate of needing to add this override for every serializable platform object so that we can check whether they are exposed or not.
36 lines
927 B
C++
36 lines
927 B
C++
/*
|
|
* Copyright (c) 2020, the SerenityOS developers.
|
|
*
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <LibWeb/ARIA/Roles.h>
|
|
#include <LibWeb/HTML/HTMLElement.h>
|
|
|
|
namespace Web::HTML {
|
|
|
|
class HTMLSummaryElement final : public HTMLElement {
|
|
WEB_NON_IDL_PLATFORM_OBJECT(HTMLSummaryElement, HTMLElement);
|
|
GC_DECLARE_ALLOCATOR(HTMLSummaryElement);
|
|
|
|
public:
|
|
virtual ~HTMLSummaryElement() override;
|
|
|
|
// https://www.w3.org/TR/html-aria/#el-details
|
|
virtual Optional<ARIA::Role> default_role() const override { return ARIA::Role::button; }
|
|
|
|
bool is_summary_for_its_parent_details() const;
|
|
|
|
virtual bool has_activation_behavior() const override;
|
|
virtual void activation_behavior(DOM::Event const&) override;
|
|
virtual bool is_focusable() const override;
|
|
|
|
private:
|
|
HTMLSummaryElement(DOM::Document&, DOM::QualifiedName);
|
|
|
|
virtual void initialize(JS::Realm&) override;
|
|
};
|
|
|
|
}
|