# Kann ich feststellen, ob etwas ein Touch-Gerät ist

**URL:** https://meta.discourse.org/t/can-i-ascertain-if-something-is-a-touch-device/353076
**Category:** Development
**Created:** [19. Februar 2025 um 11:59 UTC](https://meta.discourse.org/t/can-i-ascertain-if-something-is-a-touch-device/353076 "2025-02-19T11:59:54Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [19. Februar 2025 um 11:59 UTC](https://meta.discourse.org/t/can-i-ascertain-if-something-is-a-touch-device/353076/1 "2025-02-19T11:59:54Z")

</div>

… in Javascript?

Und ich meine nicht mobil, ich meine jedes Gerät, z. B. ein Touch-Gerät wie ein Tablet, bei dem Hover keinen Sinn ergibt.

Oder bin ich gezwungen, CSS zu verwenden?

---

<div class="post-metadata">

### Author: ![david](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/david/32/157490_2.png) [@david](https://meta.discourse.org/u/david)
#### Post date: [19. Februar 2025 um 12:06 UTC](https://meta.discourse.org/t/can-i-ascertain-if-something-is-a-touch-device/353076/2 "2025-02-19T12:06:37Z")

</div>

Eine knifflige Sache, die man bedenken muss, sind Laptops mit Touchscreens. In diesem Fall erfolgt die primäre Interaktion normalerweise über eine Maus … obwohl das Gerät technisch gesehen einen Touchscreen hat. Das hat uns kürzlich einige Kopfschmerzen mit Reaktionen bereitet 😅

Aber um Ihre spezielle Frage zu beantworten: Ich denke, [CSS-Medienabfragen](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_media_queries/Using_media_queries#syntax) sind der richtige Weg. Wir haben `hover`, `pointer`, `any-hover` und `any-pointer`.

Und dann können Sie diese CSS-Medienabfragen mit `window.matchMedia` wie folgt ausführen:

> <https://github.com/discourse/discourse-reactions/blob/d231e759a93fb908514b3540425ee4dc2348b247/assets/javascripts/discourse/widgets/discourse-reactions-state-panel.js#L26C20-L26C20>

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [19. Februar 2025 um 12:16 UTC](https://meta.discourse.org/t/can-i-ascertain-if-something-is-a-touch-device/353076/3 "2025-02-19T12:16:46Z")

</div>

Ja, guter Punkt und schöner Vorschlag.

Ich habe versucht, die Theme-Einstellungen zu verwenden, um zu bestimmen, wann bestimmte Auszüge über einem Bild erscheinen sollen, das normalerweise nur beim Überfahren mit der Maus angezeigt wird.

In meinem Fall wären die Optionen:

- Immer an
- Nur auf Touch-Geräten (da Hover auf Tablets/Handys nicht wirklich verfügbar ist)
- Nur beim Überfahren mit der Maus (Normalfall)

Das Erkennen von Touch-Geräten ist in diesem Fall vielleicht keine Katastrophe 😅

Ich hatte nur gehofft, dass es ein direktes Website-Attribut gäbe, das ich übersehen hatte, aber ich werde Ihren Vorschlag prüfen. Ein kleines CSS-Refactoring mit einigen concatClasses sieht jedoch wahrscheinlich aus …

---

<div class="post-metadata">

### Author: ![david](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/david/32/157490_2.png) [@david](https://meta.discourse.org/u/david)
#### Post date: [19. Februar 2025 um 12:26 UTC](https://meta.discourse.org/t/can-i-ascertain-if-something-is-a-touch-device/353076/4 "2025-02-19T12:26:31Z")

</div>

> [@merefield](#):
>
> Ich hatte nur gehofft, es gäbe ein direktes Site-Attribut, das ich übersehen hatte.

Der `capabilities`-Dienst hat einige Eigenschaften, die helfen könnten. z.B.:

> <https://github.com/discourse/discourse/blob/a0e1a1216112161465f976cd1121a00f044612e3/app/assets/javascripts/discourse/app/services/capabilities.js#L7C18-L7C18>

Obwohl es erwähnenswert ist: Diese Logik hat uns kürzlich Kopfzerbrechen bereitet. Ich stelle mir vor, dass wir sie in naher Zukunft durch die auf CSS-Media-Queries basierende Strategie ersetzen werden. (Als dies geschrieben wurde, glaube ich nicht, dass diese Media Queries weit verbreitet waren)

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [19. Februar 2025 um 12:34 UTC](https://meta.discourse.org/t/can-i-ascertain-if-something-is-a-touch-device/353076/5 "2025-02-19T12:34:39Z")

</div>

oooh das ist ein heimlicher Dienst … nicht viel davon in der Quelle gesehen! 🕵️‍♂️
