Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Define referenceable algorithms for IntersectionObserver methods #427

Closed
zcorpan opened this issue May 8, 2020 · 4 comments · Fixed by #449
Closed

Define referenceable algorithms for IntersectionObserver methods #427

zcorpan opened this issue May 8, 2020 · 4 comments · Fixed by #449

Comments

@zcorpan
Copy link
Member

zcorpan commented May 8, 2020

In whatwg/html#5510 I'm trying to specify <img loading=lazy> in terms of IntersectionObserver as per discussion in whatwg/html#5236

As @domfarolino pointed out, in web specs we try not to call public APIs, but instead want to call the underlying algorithm directly. (Also see #401 )

For lazy-loaded images currently, we need to

  • initialize a new IntersectionObserver with a callback that is a set of steps defined in spec prose
  • call observe()
  • call unobserve()
@zcorpan
Copy link
Member Author

zcorpan commented May 18, 2020

When fixing this, also fix (or file an issue to fix) the "XXX" issues introduced in whatwg/html#5510

@szager-chromium
Copy link
Collaborator

Is there an idiomatic way to do this? Is it just a matter of moving the language from the public API methods into new sections under Processing-Model/Algorithms, and referring to them from the public API description?

I must say, it seems needlessly complicated to add this level of indirection to the spec. Could you instead follow the example given in issue #55 for getBoundingClientRect, and say something like:

"Perform the steps described in the IntersectionObserver spec for the IntersectionObserver constructor."
"Perform the steps described in the IntersectionObserver spec for the observe() method."

?

@zcorpan
Copy link
Member Author

zcorpan commented Sep 14, 2020

The usual way is a level of <dfn> abstraction. But it doesn't need to be in a different section, that's up to how you want to structure the spec. See for example https://fullscreen.spec.whatwg.org/#dom-document-exitfullscreen

I don't think the example for getBoundingClientRect is a great one to follow; it's less explicit, and I don't see a good reason not to change the cssom-view spec.

I think there's an argument to be made that this is a bit annoying for writing specs and we could do something to make it easy to do the right thing, but for now, we need an extra dfn when other specs want to reference algorithms.

@zcorpan
Copy link
Member Author

zcorpan commented Oct 22, 2020

Thanks for fixing! I tried today to update the HTML standard and ran into further issues, see #464

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants