- From: Alice <notifications@github.com>
- Date: Wed, 29 Jan 2025 15:37:59 -0800
- To: WICG/webcomponents <webcomponents@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <WICG/webcomponents/issues/1093@github.com>
> @alice To make sure I understand you, are you thinking that the `referenceTarget` attribute's type should be a nullable `DOMString`? > > ```js > partial interface ShadowRoot { > attribute DOMString? referenceTarget; > } > ``` > > I had been assuming the attribute's type would just be `DOMString`, and that's how it's [prototyped today](https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/core/dom/shadow_root.idl;l=58;drc=86547d0ef65244867832bba1721ef3d0ed826eea). But looking at the explainer again I guess it's not specific on this point. > > Assuming I'm reading the specs correctly, keeping it as a non-nullable `DOMString` triggers [this string conversion](https://webidl.spec.whatwg.org/#js-DOMString) when trying to set the attribute to null, and this conversion happens before the implementation of the property "sees" the value: > ```js > document.querySelector("#fancy-listbox").shadowRoot.referenceTarget = null; > document.querySelector("#fancy-listbox").shadowRoot.referenceTarget; // logs 'null' > ``` > But if we make it `DOMString?` then we'd get the behavior you suggest. That's definitely seems like it'd avoid a pitfall when someone wants to clear the referenceTarget value. An inconsistency it introduces though is that the `Element.id` property is itself a non-nullable `DOMString`. So you get this today: > > ```js > const div = document.createElement("div"); > div.id = null; > div.id; // logs 'null' > ``` > > It's tempting to treat the `referenceTarget` property as kind of equivalent to setting an ID elsewhere, so keeping the behavior consistent could be nice. What do you think? (Maybe this question should be its own thread.) _Originally posted by @dandclark in [#1089](https://github.com/WICG/webcomponents/issues/1089#issuecomment-2606132790)_ -- Reply to this email directly or view it on GitHub: https://github.com/WICG/webcomponents/issues/1093 You are receiving this because you are subscribed to this thread. Message ID: <WICG/webcomponents/issues/1093@github.com>
Received on Wednesday, 29 January 2025 23:38:03 UTC