partial interface Element { [SameObject] readonly attribute CSSToggleMap toggles; }; interface CSSToggleMap { maplike; CSSToggleMap set(DOMString key, CSSToggle value); }; interface CSSToggle { attribute (unsigned long or DOMString) value; attribute unsigned long? valueAsNumber; attribute DOMString? valueAsString; attribute (unsigned long or FrozenArray) states; attribute boolean group; attribute CSSToggleScope scope; attribute CSSToggleCycle cycle; constructor(optional CSSToggleData options); }; dictionary CSSToggleData { (unsigned long or DOMString) value = 0; (unsigned long or sequence) states = 1; boolean group = false; CSSToggleScope scope = "wide"; CSSToggleCycle cycle = "cycle"; }; enum CSSToggleScope { "narrow", "wide", }; enum CSSToggleCycle { "cycle", "cycle-on", "sticky", }; interface CSSToggleEvent : Event { constructor(DOMString type, optional CSSToggleEventInit eventInitDict = {}); readonly attribute DOMString toggleName; readonly attribute CSSToggle? toggle; }; dictionary CSSToggleEventInit : EventInit { DOMString toggleName = ""; CSSToggle? toggle = null; };