#931: Speculation rules: target_hint field

Visit on Github.

Opened Feb 13, 2024

こんにちは TAG-さん!

I'm requesting a TAG review of target_hint field for speculation rules prerendering.

This extends speculation rules syntax to allow developers to specify the target_hint field.

This field provides a hint to indicate a target navigable where a prerendered page will eventually be activated. For example, when _blank is specified as a hint, a prerendered page can be activated for a navigable opened by window.open(). The field has no effect on prefetching.

Further details:

  • I have reviewed the TAG's Web Platform Design Principles
  • Relevant time constraints or deadlines: We hope to start an origin trial with partners as soon as possible, so the sooner, the better.
  • The group where the work on this specification is currently being done: WICG
  • The group where standardization of this work is intended to be done (if current group is a community group or other incubation venue): WHATWG
  • Major unresolved issues with or opposition to this specification: n/a
  • This work is being funded by: Google

You should also know that...

n/a

We'd prefer the TAG provide feedback as (please delete all but the desired option):

☂️ open a single issue in our GitHub repo for the entire review

Discussions

Discussed May 20, 2024 (See Github)

adding assignments

Matthew: it says "for implementation reasons" and also "we want to get rid of this in future" - so how many people are going to use it given that they want to get rid of it and what does that mean for the dev tools. When we've looked at others of these we've wanted a bit more detail on when and how it's gonna be deprecated.

Dan: links to a fragment of speculation rules explainer but no specific user needs..

Dan: adds comment and Matthew will add another comment about deprecation.

also we assign Tess as another reviewer

Comment by @torgo May 22, 2024 (See Github)

We're just taking a look at this today and noting that the section of the explainer doc you've linked to doesn't have explicit user needs indicated. Can you add something that indicates the user need you're trying to service here? I think it's something like "enhance the efficiency of pre-rendering so if the user's device does that pre-rendering work it's more likely to be used and therefore the user is more likely to have a performant experience" - is that correct?

Comment by @matatk May 22, 2024 (See Github)

Also, the explainer mentions the desire to deprecate this, when the engineering work is done. I appreciate it's hard to predict how the work will go, but is there any way to firm up the timeline in the explainer, or for the public to track when it's complete?

Discussed Aug 19, 2024 (See Github)

Amy: no response to our requests for more info in the explainer

Peter: I'll ask for updates

Comment by @plinss Aug 19, 2024 (See Github)

@nhiroki any updates to the above questions?

Comment by @nhiroki Aug 21, 2024 (See Github)

Sorry for my late action. @robertlin-chromium is now updating the explainer.

Comment by @domenic Aug 22, 2024 (See Github)

The updates have been merged in https://github.com/WICG/nav-speculation/commit/d8ce9b5586bcb079a3942bce079d3d0ee0d1fd17.

Discussed Sep 9, 2024 (See Github)

Tess: looks like ... jeffrey asked some questions ... could mark as pending ex feedback?

Jeffrey: I'm assuming they will say it's gonna take a year... Totally possible it will be a constraint for webkit and mozilla also ... only concern I saw is maybe this shows that mozilla is right ... to use anchor tags...

Tess: I think micro-syntax ... knee-jerk reaction is .. we won't need it.

Jeffrey: moz's approach is to design a different micro-syntax... Not obviously better. The comment might be 'please keep working with moz to see what the right syntax is'.

Tess: that would work for me. We could close it now...

Jeffrey: this is a real small tweak to bigger pre-rendering issue.

Tess: this has arch implications because it's redundantly specifying...

<blockquote>

Please keep working with Mozilla to figure out the right syntax for this, especially whether the need for target information reinforces their preference to re-use <a> elements. Beyond that, we don't see any architectural issues and (ignoring any worries about the underlying feature) are satisfied with this extension.

</blockquote>

We agree to close.

Comment by @jyasskin Sep 9, 2024 (See Github)

For our background:

  1. https://github.com/WICG/nav-speculation/pull/173/files#diff-086d7831ccea2721156a3a66a719f58f0eb0501d4b0da344f07e7a0df46a3efeR151, saying it would take a year or so of engineering effort to remove the need for this field, was merged about 2 years ago. Is there an updated estimate for how long this field will be around? I see that https://issues.chromium.org/361129302 exists to track progress on this effort, but it doesn't have that estimate.
  2. Have you gotten any indications from Gecko or WebKit (even though they haven't supported prerendering itself) about whether they'd have the same implementation constraint that benefits from this field? Does this field affect Mozilla's argument against the JSON syntax? Without having deeply investigated it, this field might support their argument to put rel="nav-prerender" on <a> tags since those already have the target attribute.

FWIW, after skimming the description, it seems like this is designed well, so that it can fade away once it's no longer needed, and that it doesn't add much complexity.

Comment by @jeremyroman Sep 9, 2024 (See Github)

Without stepping on @nhiroki's toes, the document rule syntax does allow selecting links in the page, and when that is done, the target attribute is indeed implicitly used.

Comment by @jyasskin Sep 10, 2024 (See Github)

Thanks for explaining that this does re-use the <a target> attribute when that's available, and sorry for missing it in my review. We discussed this in our breakout session yesterday:

Please keep working with Mozilla to figure out the right consensus syntax for this. Beyond that, we don't see any architectural issues and (ignoring any worries about the underlying feature) are satisfied with this extension. Thanks for sending this review!