Skip to content

Proposal: extend window.open() to split tabs, and add declarative equivalents for window.open() generally #13153

Open

Description

@mfreed7

What is the issue with the HTML Standard?

{See #9644 for a prior very similar proposal. This issue intends to supersede that issue, and is quite similar. I debated just commenting there, but I don't want there to be confusion about the specifics of the API shape being proposed.}

Many browsers these days include a "split tabs" feature, where two separate top level URLs can be viewed side-by-side within a single "tab" of the browser. However, there is no way to request for window.open() to open the new URL in this mode. Neither is there a way to cause a link-click to open in this mode.

Please see the explainer for all the details: https://github.com/mfreed7/split-tabs

But TL;DR, the proposal for the imperative API is a new "split" window features token:

// Basic: request a split tab.
window.open("https://www.example.com", "_blank", "split");

// Open on the left, taking 30% of the width.
window.open("https://www.example.com", "_blank", "split,splitposition=left,splitsize=30");

and the declarative API is a new windowFeatures attribute:

<a href="/?url=https%3A%2F%2Fexample.com" target="_blank"
   windowfeatures="split,splitposition=right,splitsize=40">Open in a split tab</a>

Note that the declarative proposal also allows links to open popups, which wasn't possible before without JS.

This has been prototyped in Chromium, which you can try out using the latest Canary build, plus --enable-features="WindowOpenSplitTab" on the command line. (And soon by just enabling Experimental Web Platform Features instead.)

Thoughts appreciated!

Activity

  1. smaug---- commented on Oct 27, 2026

    @smaug----

    I like this.

    But I don't quite understand how this is supposed to work if one is already in a split view. Say you're in the left view and try to open a new view in the bottom. A browser might support only either vertical or horizontal split at a time.

    And splitsize is likely a bit problematic. Browser window might be very narrow, in that case splitsize=20 would be probably very unusable - in such case 50 would make more sense. But on a wide screen, 20 could be totally fine.

  2. xuzhengyi1995 commented on Oct 28, 2026

    @xuzhengyi1995

    Like this, and I also think use windowfeatures is better than a "_split" target.

    2. I like this.
    But I don't quite understand how this is supposed to work if one is already in a split view. Say you're in the left view and try to open a new view in the bottom. A browser might support only either vertical or horizontal split at a time.
    And splitsize is likely a bit problematic. Browser window might be very narrow, in that case splitsize=20 would be probably very unusable - in such case 50 would make more sense. But on a wide screen, 20 could be totally fine.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions