Re: [whatwg/dom] Trusted types attributes (PR #1268)

@annevk commented on this pull request.

I did a quick editorial review. Please double check the comments throughout as some apply several times.

> @@ -6589,6 +6591,14 @@ steps:
  <a for=Attr>value</a>.
 </ol>
 
+<p>To <dfn>verify attribute value</dfn> {{TrustedType}} or string <var>value</var> for an
+<a>attribute</a> <var>attribute</var>, given an <a for=/>Element</a> <var>element</var>:
+
+<ol>
+ <li><p>Return the result of calling <a abstract-op>get Trusted Types-compliant attribute value</a>
+ for <var>attribute</var>, with <var>element</var>, <var>value</var>. [[!TRUSTED-TYPES]]

```suggestion
 for <var>attribute</var>, with <var>element</var> and <var>value</var>. [[!TRUSTED-TYPES]]
```
Although maybe we can use the more standard "given attribute, element, and value"?

> + <li><p>Let <var>verifiedValue</var> be the result of calling <a>verify attribute value</a>
+ <var>attr</var>'s <a for=Attr>value</a> for <var>attr</var>, with <var>element</var>.

```suggestion
 <li><p>Let <var>verifiedValue</var> be the result of <a>verifying attribute value</a> given
 <var>attr</var>'s <a for=Attr>value</a>, <var>attr</var>, and <var>element</var>.
```
However, this doesn't match the signature above. What gives?

>  
 <ol>
  <li>Let <var>attribute</var> be the result of
  <a lt="get an attribute by namespace and local name">getting an attribute</a> given
  <var>namespace</var>, <var>localName</var>, and <var>element</var>.
 
- <li>If <var>attribute</var> is null, create an <a>attribute</a> whose <a for=Attr>namespace</a> is
- <var>namespace</var>, <a for=Attr>namespace prefix</a> is <var>prefix</var>,
- <a for=Attr>local name</a> is <var>localName</var>, <a for=Attr>value</a> is <var>value</var>, and
- <a for=Node>node document</a> is <var>element</var>'s <a for=Node>node document</a>, then
- <a lt="append an attribute">append</a> this <a>attribute</a> to <var>element</var>, and then
- return.
+ <li><p>Let <var>attributeExists</var> be false if <var>attribute</var> is null, and true otherwise.

```suggestion
 <li><p>Let <var>attributeExists</var> be false if <var>attribute</var> is null; otherwise true.
```

> - <var>namespace</var>, <a for=Attr>namespace prefix</a> is <var>prefix</var>,
- <a for=Attr>local name</a> is <var>localName</var>, <a for=Attr>value</a> is <var>value</var>, and
- <a for=Node>node document</a> is <var>element</var>'s <a for=Node>node document</a>, then
- <a lt="append an attribute">append</a> this <a>attribute</a> to <var>element</var>, and then
- return.
+ <li><p>Let <var>attributeExists</var> be false if <var>attribute</var> is null, and true otherwise.
+
+ <li><p>If <var>attributeExists</var> is false, set <var>attribute</var> to an <a>attribute</a>
+ whose <a for=Attr>namespace</a> is <var>namespace</var>, <a for=Attr>namespace prefix</a> is
+ <var>prefix</var>, <a for=Attr>local name</a> is <var>localName</var>, <a for=Attr>value</a> is
+ <var>value</var>, and <a for=Node>node document</a> is <var>element</var>'s <a for=Node>node
+ document</a>.
+
+ <li><p>Let <var>verifiedValue</var> be <var>value</var>.
+
+ <li><p>If <var>verify</var> is true:

`<p>` on its own line if the `<li>` has multiple children.

>  
- <li><p><a lt="change an attribute">Change</a> <var>attribute</var> to <var>value</var>.
+ <li><p>If <var>attributeExists</var> is true, <a lt="change an attribute">change</a>
+ <var>attribute</var> to <var>verifiedValue</var>.
+
+ <li><p>Otherwise:

`<p>` on its own line as `<li>` has multiple children.

> + <li><p>Let <var>attributeExists</var> be false if <var>attribute</var> is null, and true otherwise.
+
+ <li><p>If <var>attributeExists</var> is false, set <var>attribute</var> to an <a>attribute</a>
+ whose <a for=Attr>namespace</a> is <var>namespace</var>, <a for=Attr>namespace prefix</a> is
+ <var>prefix</var>, <a for=Attr>local name</a> is <var>localName</var>, <a for=Attr>value</a> is
+ <var>value</var>, and <a for=Node>node document</a> is <var>element</var>'s <a for=Node>node
+ document</a>.
+
+ <li><p>Let <var>verifiedValue</var> be <var>value</var>.
+
+ <li><p>If <var>verify</var> is true:
+  <ol>
+   <li><p>Set <var>verifiedValue</var> to the result of calling <a>verify attribute value</a>
+   <var>value</var> for <var>attribute</var>, with <var>element</var>.
+
+   <li><p>Set <var>attributeExists</var> to true if <var>element</var> <a lt="has an attribute">has

No newlines in phrasing level elements.

> @@ -6939,12 +6976,27 @@ method steps are:
  and null otherwise.
  <!-- This is step 2 of "get an attribute by name", modified as appropriate -->
 
- <li><p>If <var>attribute</var> is null, create an <a>attribute</a> whose
- <a for=Attr>local name</a> is <var>qualifiedName</var>, <a for=Attr>value</a> is
- <var>value</var>, and <a for=Node>node document</a> is <a>this</a>'s <a for=Node>node document</a>,
- then <a lt="append an attribute">append</a> this <a>attribute</a> to <a>this</a>, and then return.
+ <li><p>Let <var>attributeExists</var> be false if <var>attribute</var> is null, and true otherwise.

```suggestion
 <li><p>Let <var>attributeExists</var> be false if <var>attribute</var> is null; otherwise true.
```

> @@ -7514,7 +7566,13 @@ string <var>value</var>, run these steps:
  <li><p>If <var>attribute</var>'s <a for=Attr>element</a> is null, then set <var>attribute</var>'s
  <a for=Attr>value</a> to <var>value</var>.
 
- <li><p>Otherwise, <a lt="change an attribute">change</a> <var>attribute</var> to <var>value</var>.
+ <li><p>Otherwise:
+  <ol>
+    <li><p>Let <var>verifiedValue</var> be the result of calling <a>verify attribute value</a>

Single-space indentation.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/whatwg/dom/pull/1268#pullrequestreview-2630297005
You are receiving this because you are subscribed to this thread.

Message ID: <whatwg/dom/pull/1268/review/2630297005@github.com>

Received on Thursday, 20 February 2025 15:43:06 UTC