- From: Dan Clark <notifications@github.com>
- Date: Tue, 21 Jan 2025 18:14:04 -0800
- To: WICG/webcomponents <webcomponents@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <WICG/webcomponents/issues/1089/2606132790@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.) -- Reply to this email directly or view it on GitHub: https://github.com/WICG/webcomponents/issues/1089#issuecomment-2606132790 You are receiving this because you are subscribed to this thread. Message ID: <WICG/webcomponents/issues/1089/2606132790@github.com>
Received on Wednesday, 22 January 2025 02:14:08 UTC