Re: [csswg-drafts] [cssom-view] scrollIntoView container spec unclear (#12260)

I agree that, given how the actual [scroll target into view steps](https://drafts.csswg.org/cssom-view/#scroll-a-target-into-view) are defined, the relationship between the Element interface extension and the internal behavior could be improved. 

To remove ambiguity from the spec (setting a variable called `container` to the element which isn't itself _containing_ anything for the purposes of the method), the following changes could be made:

for `.scrollIntoView(...)`:
| Before | After |
| ------ | ------|
| 4. Let _container_ be null. | Let _container_ be "all". |
| If the **container** dictionary member of options is "nearest", set _container_ to the element. | Set _container_ to the **container** dictionary member of options.|

The `container`'s enum definition could probably be renamed to be more self-descriptive, as right now it kind of points to itself instead (`dictionary ScrollIntoViewOptions { ScrollIntoViewContainer container = ...; }`:

```WebIDL
enum ScrollingBoxScope { "all", "nearest" };

enum ScrollLogicalPosition { "start", "center", "end", "nearest" };

dictionary ScrollIntoViewOptions : ScrollOptions {
  ScrollLogicalPosition block = "start";
  ScrollLogicalPosition inline = "nearest";
  ScrollingBoxScope container = "all";
};
```

Then, in the scroll into view steps:
| Before | After |
| ------ | ------|
| with a scroll behavior _behavior_, a block flow direction position _block_, an inline base direction position _inline_, and an optional containing Element to stop scrolling after reaching _container_ | with a scroll behavior _behavior_, a block flow direction position _block_, an inline base direction position _inline_, and a scrolling box scope _container_ |
| If _container_ is not null and either scrolling box is a shadow-including inclusive ancestor of _container_ or is a viewport whose document is a shadow-including inclusive ancestor of _container_, abort the rest of these steps. | If `container` is "nearest" and either _scrolling box_ is a shadow-including inclusive ancestor of _target_ or is a viewport whose document is a shadow-including inclusive ancestor of _target_, abort the rest of these steps. |


-- 
GitHub Notification of comment by Chudesnov
Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/12260#issuecomment-3188850592 using your GitHub account


-- 
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config

Received on Thursday, 14 August 2025 15:21:14 UTC