0 votes
in SoSci Survey (dt.) by s171605 (530 points)

Hallo,

ich hätte zwei Fragen.

1) Ist es möglich Art des Eingabemediums (Touchpad oder Maus) im Zuge der Befragung zu erheben?

2) Ist es möglich die Tabulator-taste sowie Leertaste für die Beantwortung des Fragebogens zu deaktivieren/sperren, sodass lediglich per Maus gesteuert werden kann?

Vielen Dank!

1 Answer

+1 vote
by SoSci Survey (303k points)

ad 1) Sie können mittels JavaScript Mausklicks ("mousedown") und Berührungen ("touchstart") beobachten und entsprechend eine interne Variable setzen. Allerdings sollten Sie nicht ausschließen, dass jemand einen Laptop mit Maus und Touch-Bildschirm hat.

ad 2) Ja, man könnte mittels JavaScript auch die Tab-Taste abfangen (das funktioniert ähnlich wie das Sperren der rechten Maustaste, dazu gibt es im Internet zahlreiche Anleitungen) - aber das wäre ein ziemlich massiver Eingriff in die Souveränität der Nutzer:innen. Da rate ich zu großer Vorsicht - wenn jemand z.B. aufgrund einer körperlichen Behinderung mit der Tastatur ausfüllen möchte, müssten Sie schon sehr gute Gründe haben, das zu verhindern. Zumindest gute Gründe sollten Sie auch haben, wenn jemand einfach lieber die Tastatur nutzt.

by s171605 (530 points)
edited by s171605
bezüglich 1) mit touchpad meine ich das pad bei Laptops (nicht touchscreen).

bezüglich 2) würde dieser Code funktionieren oder muss ich hier noch etws ergänzen?

$(document).keydown(function(objEvent) {
    if (objEvent.keyCode == 9) {  //tab pressed
        objEvent.preventDefault(); // stops its action
    }
})
by SoSci Survey (303k points)
ad 1) Da dürfte es auf den jeweiligen Laptop und den Touchpad-Treiber ankommen, ob das überhaupt als Berührung an das Betriebssystem gemeldet wird oder als Mausklick. Die Wahrscheinlichkeit ist groß, dass das Betriebssystem das direkt als Maus einbindet und Sie im Browser nicht mehr unterscheiden können, ob es eine angeschlossene Maus oder das Touchpad auf dem Laptop war. Zumindst nicht ohne größeren Aufwand (z.B. DirektInput-Bibliotheken)

ad 2) Diese Syntax sieht nach jQuery aus. Wenn Sie das verwenden möchten, müssten Sie zumindest noch library('jQuery') via PHP auf der Seite aufrufen.

Alternativ können Sie "normales" JavaScript verwenden:

$document.addEventListener("keydown", function(objEvent) {
    if (objEvent.keyCode == 9) {  //tab pressed
        objEvent.preventDefault(); // stops its action
    }
});

Ob es funktioniert sehen Sie, wenn Sie es auf der Seite platzieren und ausprobieren. Wenn nicht, posten Sie gerne einen Pretest-Link direkt (!) zur betroffenen Seite.
by s178438 (230 points)
zu 1)
und zwar würde ich gerne erfassen, mit welchem Gerät (PC vs. Tablet) eine Person die Studie bearbeitet. Hierbei würde ich gerne den genannten Vorschlag mittels JavaSkript (Mausklicks oder Berührungen) umsetzen. Könnten Sie mir hier einen Ansatz oder Tipp geben, wie ich das umsetzen könnte? Leider kenne ich mich mit JavaSkript kaum aus.
Die Idee ist, dass man mittels JavaSkript schaut, ob eine Person per Mausklick oder per Berührungen den Fragebogen bearbeitet und diese Information dann in einer internen Variable speichert. Daraus kann man dann schließen, ob die Person entweder am PC oder am Tablet teilgenommen hat.
Auch Ipads könnten somit als Tablet erkannt werden, anders als bei dem Fragetyp "Gerät und übermittelte Variablen".
Diesen Fragetyp hatte ich bereits eingestellt, um Smartphone-Nutzer vorab auszuschließen. Hier hatte ich auch bei den übermittelten Daten die Bildschirmgröße aktiviert. Leider werden mir hier keine Pixel-Zahlen übermittelt, sondern immer nur eine "-8" angezeigt. Hätten Sie eine Idee, woran das liegen könnte? Ich habe es bereits mit unterschiedlichen Geräten und Browsern versucht.

Vielen Dank für die Antworten!
by SoSci Survey (303k points)
>  Leider kenne ich mich mit JavaSkript kaum aus.

In dem Fall wäre es womöglich deutlich (!) einfacher, wenn Sie eine Frage vom Typ "Gerät und übermittelte Variablen" verwenden und dort den Gerätetyp und die Bildschirmgröße erheben. Die Bildschirmgröße deshalb, weil Apple-Geräte nicht immer den korrekten Gerätetyp übermitteln. An der BIldschirmgröße sieht man aber recht zuverlässig, ob es ein Smartphone, Tablet oder PC ist.

> Leider werden mir hier keine Pixel-Zahlen übermittelt, sondern immer nur eine "-8" angezeigt.

Das ist seltsam... passiert das auch auf dem PC oder nur auf bestimmten Mobilgeräten? Könnten Sie womöglich mal einen Pretest-Link direkt (!) zur der Seite mit der Frage posten? Womöglich blockiert ein anderes (defektes) Script auf der Seite die Aufzeichnung der Bildschirmgröße.
by s178438 (230 points)
Leider werden mir beim Typ “Gerät und übermittelte Variablen” beim Gerätetyp immer nur eine 1 angezeigt (für Computer). iPads bzw Apple Geräte werden somit immer als PC erkannt, was ein Problem darstellt. Bei der Bildschirmgröße wird weiterhin immer nur “-8” angezeigt, egal welches Gerät man verwendet. Ein anderes Skript existiert auf der Fragebogen-Seite nicht, was es evtl. Blockieren könnte.
Ich habe auf der Seite lediglich es folgenden PHP-Code, um Smartphone Nutzer auszuschließen:

question('GG01'); // Funktionalen Baustein GG01 einbinden, um das Geräteformat zu ermitteln
if ((value('GG01_FmF') == 4) or (value('GG01_FmF') == 5)) {
  text('GG02');   // Text anzeigen
  buttonHide();   // Knöpfe ausblenden, sodass der Fragebogen nicht weiter ausgefüllt werden kann
}

Aufgrund dessen würde ich sehr gerne die Idee mit den JavaSkript versuchen umzusetzen. Könnten Sie mir hier einen ersten Ansatz geben, wie ich am besten vorgehe?
Ich danke Ihnen sehr im Voraus!
by SoSci Survey (303k points)
Die Erfassung der BIldschirmgröße erfolgt auch "nur" mitels JavaScript. Wenn das also schon nicht funktioniert, hakt dort irgend etwas. Daher meine Bitte um einen Pretest-Link zur betroffenen Seite (am besten mit Debug-Modus). Nicht, dass wir bei Ihrem anderen Script ewig nach Fehlern suchen, die an ganz anderer Stelle liegen.

Was möchten Sie denn mit Ihrem JavaScript genau machen? Einfach nur prüfen, ob eine Taste gedrückt wird oder soll es beim Drücken der Leertaste auf die nächste Seite gehen (und sonst nicht)?
by s178438 (230 points)
Hier vorerst mal der Link zur Vorschau mit Debug-Infos (Auf der S. 2 habe ich die Gerätermittlung mit Smartphone Filter (siehe PHP-Code oben) eingefügt).

https://www.soscisurvey.de/mfc_pilot/?act=NEB85425ZNnuRaTfN8GS0C3q

Muss man denn zusätzlich zu dem Haken bei “Bildschirmgröße” in der Frage “Gerät und übermittelte Variablen” noch auf der entsprechenden Fragebogen-Seite ein JavaSkript einfügen? Wenn ja, könnte der Fehler daran liegen, da ich dachte, dass ein Haken ausreichen würde.

Ich würde gerne lediglich mit dem JavaSkript schauen, ob eine Person per Mausklicks oder per Berührungen/Touch den Fragebogen bearbeitet. Erfasst man dies über die EventHandler()? Diese Info dann in einer internen Variable speichern, wodurch man schließen kann, ob die Person ein Tablet oder PC verwendet hat. Die Bildschirmgröße würde hier zusätzlichen Mehrwert bieten, wenn wir es schaffen, dass diese korrekt übertragen wird.

Viele Grüße
by SoSci Survey (303k points)
Danke für den Pretest-Link. Es sieht so aus, als hätten Sie die Frage GG01 doppelt auf der Seite 2 eingebunden. Könnte das sein? Deshalb klappt es mit der Messung der Bildschirmgröße nicht.

> Ich würde gerne lediglich mit dem JavaSkript schauen, ob eine Person per Mausklicks oder per Berührungen/Touch den Fragebogen bearbeitet.

Nun, Sie können schon zwei interne Variablen (z.B. IV01_01 und IV01_02) in die Seite einfügen und dann folgenden JavaScript-Code verwenden:

document.getElementById("IV01_01") = "0";
window.addEventListener("touchstart", function() {
  document.getElementById("IV01_01") = "1";
});
document.getElementById("IV01_02") = "0";
window.addEventListener("mousedown", function() {
  document.getElementById("IV01_02") = "1";
});

Wenn ein Touch-Event auftritt, wird die erste Variablen auf 1 gesetzt, wenn ein Maus-Event auftritt, dann die zweite Variable. Wenn beide auf 1 stehen, war es vermutlich ein Touch-Gerät, denn Touch-Events werden u.U. auch zugleich als Maus-Events verarbeitet.

Willkommen im Online-Support von SoSci Survey.

Hier bekommen Sie schnelle und fundierte Antworten von anderen Projektleitern und direkt von SoSci Survey.

→ Eine Frage stellen


Welcome to the SoSci Survey online support.

Simply ask a question to quickly get answers from other professionals, and directly from SoSci Survey.

→ Ask a Question

...