document.createTouch() is a deprecated, non-standard instance method that once created Touch objects (see MDN Document: createTouch()). Learn its parameters, MDN’s example, how to feature-detect safely, what to use instead (TouchEvent()), and five try-it labs that still make sense when the API is missing.
01
Kind
Instance method
02
Returns
Touch
03
Args
All optional
04
Prefer
TouchEvent()
05
Status
Deprecated
06
Also
Non-standard
Fundamentals
Introduction
A Touch object describes one finger (or stylus contact) on a touch surface — an identifier plus coordinates such as pageX / pageY.
Years ago, some engines exposed document.createTouch(...) so scripts could build those objects by hand (often for tests or synthetic events). MDN now labels the method deprecated and non-standard, and points you to the TouchEvent() constructor instead.
💡
Legacy path vs modern path
Legacy: document.createTouch(view, target, id, pageX, pageY, screenX, screenY) Modern (MDN): prefer new TouchEvent(...) and real input events Always: feature-detect before calling createTouch
Document.createTouch() is Deprecated and Non-standard on MDN. Logos use the shared browser-image-sprite.png sprite from this project. Many modern engines omit or removed this factory — do not ship new features that depend on it.
✓ Deprecated · Non-standard
Document.createTouch()
Legacy Touch factory — missing in many current browsers. Prefer TouchEvent() and real input events.
LegacyNot for new apps
Google ChromeLegacy createTouch removed / omitted in modern versions
Avoid
Mozilla FirefoxLegacy / restricted; do not depend on it for new code
Avoid
Apple SafariTreat as unavailable for new products
Avoid
Microsoft EdgeChromium Edge: treat as unavailable for new code
Avoid
OperaFollow Chromium legacy removal
Avoid
Internet ExplorerNo practical modern createTouch path
Unavailable
createTouch()Avoid
Bottom line: Feature-detect if you must read legacy code. For new work, use TouchEvent() / real touch events or Pointer Events — never rely on createTouch().
Wrap Up
Conclusion
document.createTouch() was a legacy factory for Touch objects. MDN marks it deprecated and non-standard, and recommends the TouchEvent() constructor instead. Feature-detect if you must read old samples, then migrate to real touch or pointer input for production UI.
Treat this API as historical / migration knowledge
Feature-detect with typeof document.createTouch === "function"
Follow MDN: prefer TouchEvent() over createTouch
Use real touch* or Pointer Events for product UI
Watch for paired legacy createTouchList calls
❌ Don’t
Use createTouch in new production code (MDN)
Call it without a feature check
Use the old extra parameters MDN says to avoid
Detect “mobile” by checking for createTouch
Assume Chromium still ships this factory
Summary
Key Takeaways
Knowledge Unlocked
Five things to remember about createTouch()
Legacy Touch factory — deprecated and non-standard.
5
Core concepts
📝01
Returns
Touch
MDN
⚠️02
Status
Deprecated
MDN
🛡03
Also
Non-standard
MDN
💡04
Prefer
TouchEvent()
MDN
🔎05
Safety
feature-detect
required
❓ Frequently Asked Questions
MDN: Document.createTouch() creates and returns a new Touch object configured from optional view, target, identifier, and coordinate parameters.
Yes. MDN marks Document.createTouch() as Deprecated and Non-standard. It is not part of any current specification and is no longer on track to become a standard.
MDN: use the TouchEvent() constructor. For real device input, listen to touch events (or prefer Pointer Events). Do not rely on createTouch() in new apps.
MDN: all parameters are optional. Older extra parameters (clientX, clientY, radiusX, radiusY, rotationAngle, force) should be considered deprecated and not used.
Often no. Chromium removed legacy createTouch / createTouchList support years ago. Always feature-detect typeof document.createTouch === "function" before calling it.
Yes. Both were legacy helpers for building Touch / TouchList objects. Both are deprecated non-standard APIs — learn them only for legacy code and interviews.
Did you know?
Some old mobile-detection snippets checked for document.createTouch. That was always unreliable — and today it is worse, because many touch devices no longer expose the method at all. Detect capabilities with feature queries and real events, not removed legacy factories.