Una cosa complicata da considerare sono i laptop con touchscreen. In quel caso, l’interazione principale tende ad essere tramite un mouse… anche se il dispositivo ha tecnicamente uno schermo touch. Questo ci ha causato qualche grattacapo di recente con le reazioni ![]()
Ma per rispondere alla tua domanda specifica: penso che le query multimediali CSS siano la strada da percorrere. Abbiamo hover, pointer, any-hover e any-pointer.
E poi puoi eseguire quelle query multimediali CSS da JS usando window.matchMedia in questo modo: