====== Zuordnungsaufgabe ====== Eine Zuordnungsaufgabe zeigt unterschiedliche Stimuli und der Teilnehmer muss diese einer von zwei (oder mehr, max. 10) Kategorien zuordnen. Die Kategorien bzw. Auswahloptionen (z.B. "gut" und "schlecht") sind für jeden Stimulus dieselben. Die Zuordnung erfolg via Klick oder per Tastendruck. Letzteres ist sinnvoll, wenn die Reaktionszeit aufgezeichnet werden soll. {{:de:create:questions:exp.assignment.png?nolink|Beispiel für Zuordnungsaufgabe}} * Die Zuordnungsaufgabe funktioniert ähnlich wie ein einzelner Testblock im [[:de:create:questions:iat|Impliziten Assoziationstest (IAT)]]. * Die Reaktionszeit wird in Millisekunden mit einer Genauigkeit von ca. 10 ms aufgezeichnet. Um diese Genauigkeit zu erreichen, wird [[:de:glossary#javascript|JavaScript]] eingesetzt -- so fallen Ladezeiten zwischen den einzelnen Stimuli weg. * Vor dem ersten Stimulus wird ein Erklärungstext angezeigt. Durch Auswahl einer der Optionen startet die Zuordnungsaufgabe. * Während die Frage bearbeitet wird, ist der "Weiter"-Knopf ausgeblendet. Nach Zuordnung des letzten Stimulus wird -- je nach Einstellung in der Frage -- der Weiter-Knopf angezeigt oder automatisch zur nächsten Seite gewechselt. * Mit ein wenig JavaScript können Stimuli in Abhängigkeit der vorhergehenden Antworten übersprungen werden (s. unten). **Tipp:** Für die Auswahloptionen kann man auch Grafiken verwenden (z.B. Daumen hoch/runter, Smilie). Dafür wird als Text der Auswahloption einfach der HTML-Code zum Einbinden der Grafik verwendet ([[:de:create:images|Bilder im Fragebogen]]). ===== Bedienung mit Tasten ===== Die Auswahltasten unterscheiden sich je nach Anzahl der Auswahloptionen: * Zwei Auswahltoptionen:\\ Linke Option: D, F, G, V, B, 1, 2, 3, 4, 5, <-, Num4, Num1\\ Rechte Option: K, J, H, N, M, 6, 7, 8, 9, 0, ->, Num3, Num6 * Drei Auswahloptionen:\\ Linke Option: 1, Num1, Num4, <-\\ Mittlere Option: 2, Num2, Num5, Pfeil unten, Pfeil oben\\ Rechte Option: 3, Num3, Num6, -> * Vier bis zehn Auswahloptionen:\\ Zahlentasten 1 bis 10 (je nach Anzahl der Optionen) ===== Filterführung ===== Die unterschiedlichen Stimuli werden auf derselben Fragebogen-Seite geladen und mittels JavaScript nacheinander angezeigt -- die Antworten werden erst nach Abschluss der Frage an den Server übermittelt. Klassische [[de:create:filters|Filter]] mittels PHP-Code sind daher nicht möglich, um einzelne Stimuli (Items) zu überspringen oder die Zuordnung vorzeitig zu beenden. Dennoch biete die Frage eine Möglichkeit zur Filterführung. Hierfür wird eine JavaScript-Funktion definiert. Nach Anmeldung dieser Funktion in der Frage mittels ''setCallbackSelect()'' wird sie bei jeder Zuordnung (Auswahl) aufgerufen. Die Funktion bekommt jeweils mitgeteilt, welcher Stimulus gerade zugeordnet wurde und welche Option ausgewählt wurde. Je nachdem, was die Funktion antwortet, wird die Antwort ignoriert, springt die Frage zu einem anderen Stimulus oder die Frage wird beendet. Die Callback-Funktion kann folgende Zahlenwerte zurückgeben: * ''-1'' Zuordnungsaufgabe beenden * ''-2'' Tastendruck ignorieren, Auswahl erneut anbieten * Zum Stimulus mit der entsprechenden Kennung springen * ''0'' oder ''false'' Regulär mit den nächsten Stimulus fortfahren **Vorsicht:** Springt man zu einem Stimulus, der bereits zugeordnet wurde, so wird dieser erneut angezeigt und die alte Zuordnung und die gemessene Reaktionszeit werden überschrieben. ==== Beispiel für einen Filter ==== Folgender JavaScript-Code kann als Textbaustein gespeichert werden. Den Textbaustein zieht man unter der Frage in den Fragebogen. Die enthaltene Funktion ''selFilter()'' sorgt für folgende Filterung: - Wird beim ersten Stimulus (Item) die erste (linke) Option ausgewählt, wird das zweite Item übersprungen, also direkt weiter zu Item 3. - Der zweite Stimulus kann nur der rechten (zweiten) Kategorie zugeordnet werden, eine Auswahl der linken Option wird ignoriert. - Wird bei einem späteren Stimulus (dritter, vierter, ...) die zweite Option ausgewählt, so wird die Zuordnungsaufgabe sofort beendet. ===== JavaScript-Anbindung ===== Die JavaScript-Funktion ''setCallbackSelect()'' (siehe oben) ist primär für die Filterführung ausgelegt. Daneben unterstützt die Zuordnungsaufgabe noch Ereignisse (Events), mit denen JavaScript direkt eingreifen kann. Die folgenden Ereignisse werden vom Container der Frage ausgelöst: * ''fixation'' -- Zwischen zwei Stimuli (Items) wird eine Pause gesetzt, welche z.B. ein Fixationskreuz anzeigt. Dieses Ereignis wird nur ausgelöst, wenn zwischen den Stimuli eine Pause eingestellt wurde. In der ''detail''-Eigenschaft des Ereignises stehen folgende Attribute zur Verfügung: * ''evt.detail.question'' -- Kennung der Frage * ''evt.detail.item'' -- Kennung (ID) des Items, welches nach der Pause angezeigt wird * ''evt.detail.node'' -- Das HTML-Element, welches in der Pause angezeigt wird * ''evt.detail.duration'' -- Die Dauer der Pause [ms] * ''prime'' -- Ein Prime, der eventuell vor einem Stimulus angezeigt wird. Dieses Ereignis wird nur ausgelöst, wenn für das Item ein Prime definiert wurde. Folgende Attribute sind verfügbar: * ''evt.detail.question'' -- Kennung der Frage * ''evt.detail.item'' -- Kennung (ID) des Items, welches nach dem Prime angezeigt wird * ''evt.detail.node'' -- Das HTML-Element, welches als Prime angezeigt wird * ''evt.detail.duration'' -- Die Dauer, für welche der Prime angezeigt wird [ms] * ''present'' -- Der eigentliche Stimulus oder ein Text wird angezeigt. * ''evt.detail.question'' -- Kennung der Frage * ''evt.detail.type'' -- Art der Anzeige (''"intro"''=Text zu Beginn, ''"outro"''=Text nach dem letzten Item, ''"item"''=Ein Item/Stimulus wird angezeigt) * ''evt.detail.item'' -- Kennung (ID) des angezeigten Items/Stimulus, ''null'' falls ein Text angezeigt wird * ''evt.detail.node'' -- Das HTML-Element, welches als Stimulus oder Text angezeigt wird * ''select'' -- Der Befragte hat eine Kategorie ausgewählt. Falls dieses Ereignis mittels ''evt.preventDefault()'' abgefangen wird, wird das Item erneut angezeigt (ggf. inkl. Prime) und eine mittels ''setCallbackSelect()'' registrierte Funktion wird nicht aufgerufen. Folgende Attribute stehen zur Verfügung: * ''evt.detail.question'' -- Kennung der Frage * ''evt.detail.item'' -- Kennung (ID) des Stimulus * ''evt.detail.option'' -- Die ausgewählte Kategorie (beginnend mit 1) Mit der Funktion ''setPrimeTimes()'' kann die Darbietungsdauer für Primes (sofern diese für Stimuli/Items definiert wurden) individuell festgelegt werden. Mit der Funktion ''setPauseTimes()'' kann die Dauer der Pause zwischen den Items individuell festgelegt werden, in welcher ggf. die Fixation angezeigt wird. Die Funktion ''selectOption()'' löst dieselbe Reaktion aus wie der Klick auf eine Antwortoption. In Klammern wird die Nummer der Option (beginnend mit 1) eingetragen. ==== Audio abspielen ==== Falls die Stimuli (auch) eine Audio-Datei enthalten, kann diese über das ''present''-Ereignis zum richtigen Zeitpunkt abgespielt werden. Stimuli 1 und 2 hätte beispielsweise folgenden Inhalt: Hörbeispiel 1 Hörbeispiel 2 Unter der Frage (hier z.B. ''AB01'') wird der folgende HTML-/JavaScript-Code platziert: Beachten Sie, dass als HTML-IDs für die ''