// Copyright 2021 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
[Exposed=Window,HTMLConstructor,RuntimeEnabled=HTMLSelectListElement]
interface HTMLSelectListElement : HTMLElement {
readonly attribute boolean open;
[SameObject] readonly attribute HTMLOptionElement? selectedOption;
[ImplementedAs=valueForBinding] attribute DOMString value;
// TODO(crbug.com/1121840) Fill this out.
// Open question: do we want to replicate the interface of
// <select> as closely as possible?
// Or should we try to improve, simplify, or extend it?
[CEReactions, Reflect] attribute boolean disabled;
[ImplementedAs=formOwner] readonly attribute HTMLFormElement? form;
[CEReactions, Reflect] attribute DOMString name;
readonly attribute DOMString type;
[CEReactions, Reflect] attribute boolean required;
readonly attribute boolean willValidate;
readonly attribute ValidityState validity;
readonly attribute DOMString validationMessage;
boolean checkValidity();
boolean reportValidity();
void setCustomValidity(DOMString error);
readonly attribute NodeList labels;
};