[w3c/clipboard-apis] Clipboarding and Multipart MIME (Issue #247)

AdamSobieski created an issue (w3c/clipboard-apis#247)

## Introduction

Presented, here, are some ideas for discussion involving data transfer, clipboarding and drag-and-drop, and support for multipart MIME, including a new multipart type: `multipart/reference`.

The indicated techniques would: (1) allow end-users to be able to copy-and-paste and to drag-and-drop from scholarly and scientific publications and receive conveniences from features such as options to be able to automatically add bibliographic references to their documents upon pasting or dropping content.

The indicated techniques would: (2) enable [AI content disclosure](https://github.com/WICG/proposals/issues/261) scenarios involving data transfer content, clipboard and drag-and-drop content, to be able to indicate that it was generated or modified by an AI system for purposes including so that resultant user-edited documents could disclose that their entireties or specific parts of them were generated or significantly modified by AI technologies.


## Discussion

For `multipart/*` data-transfer scenarios, data contents could be, or could be based upon, email messages.

This might resemble:

```email
Mime-Version: 1.0
Message-ID: <12345678>
Content-Type: multipart/reference; boundary="boundary-example"

--boundary-example

Content-Type: text/plain
Content-Language: en

Climate change is caused by human activities. Therefore, we should reduce carbon emissions.

--boundary-example

Content-Type: text/x-bibtex

@book{archer2010climate,
  title={The climate crisis: An introductory guide to climate change},
  author={Archer, David and Rahmstorf, Stefan},
  year={2010},
  publisher={Cambridge University Press}
}

--boundary-example--
```

For indicating that a referenced source resource was an AI system, that content was being clipboarded or dragged-and-dropped from an AI system, instead of `text/x-bibtex`, the second part could be `application/ld+json` and utilize a new schema.

This might resemble:

```email
Mime-Version: 1.0
Message-ID: <12345678>
Content-Type: multipart/reference; boundary="boundary-example"

--boundary-example

Content-Type: text/plain
Content-Language: en

Climate change is caused by human activities. Therefore, we should reduce carbon emissions.

--boundary-example

Content-Type: application/ld+json

{
  "@context": "http://schema.org/",
  "@type": "TBD",
  "source": "ai-generated"
}

--boundary-example--
```

With respect to the `multipart/reference` MIME type and any parameters, either: (1) a convention could be used where the first part would be the data to be transferred and the remaining part(s) would be references, or (2) a new header could utilized to refer to the content part(s) by their `Content-ID`.

The convention of message parts having special, positional roles is precedented by `multipart/signed` and `multipart/encrypted`. For example, `multipart/signed` has exactly two parts, a body part and a signature part (e.g., `application/pgp-signature` or `application/pkcs7-signature`). Similarly, `multipart/reference` could be defined as having exactly two parts, a body part and a references part.

A `multipart/reference` MIME type **could** provide a parameter, `content` for describing the contained data transfer payload, e.g., `text/plain`. This would be useful for describing alternatives where each alternative format is accompanied by source data. However, as indicated in #242, MIME parameter types are not widely supported.

The indicated techniques should work in combination with those technical topics discussed in issue #244. That is, a `multipart/reference` data-transfer object, data accompanied by source-related data such as a bibliographic reference or AI-disclosure data, could also be accompanied by a source URL.

## Alternatives Considered

Alternatives considered include using MIME-type parameters for source-related data, but, as indicated in issue #242, MIME parameters are not widely supported for data-transfer scenarios, e.g.: `text/plain;encoding=UTF-8` or `text/plain;source=ai-generated`.

## Conclusion

Thank you. I look forward to any comments, feedback, and discussion about these ideas, multipart MIME types for data transfer, including a new type: `multipart/reference`. These techniques intend to enable, convenience, and simplify: (1) scholarly and scientific clipboarding and drag-and-drop scenarios, and (2) [AI content disclosure](https://github.com/WICG/proposals/issues/261) scenarios.


## See Also

* https://github.com/w3c/clipboard-apis/issues/242
* https://github.com/w3c/clipboard-apis/issues/244
* https://github.com/schemaorg/schemaorg/issues/3391
* https://github.com/WICG/proposals/issues/261#issuecomment-3822342934


-- 
Reply to this email directly or view it on GitHub:
https://github.com/w3c/clipboard-apis/issues/247
You are receiving this because you are subscribed to this thread.

Message ID: <w3c/clipboard-apis/issues/247@github.com>

Received on Saturday, 31 January 2026 16:18:32 UTC