Kahoot is a game-based learning system where users take quizzes or polls online. The current version of Kahoot makes users to click an option to respond to questions. I have always enjoyed using this system, and I imagined how Kahoot would be if users could choose an answer with their eyes. It would definitely help preventing any cheating, but it would be also interesting to see if our product can be useful to someone who are not able to use their hands and were left out of the Kahoot user community.
I came up with the idea for an alternative to the current Kahoot system. It was to use the Webgazer.js library that uses a webcam to infer the eye-gaze locations of web visitors on a page in real time. If we could integrate this library to our service, users wouldn't have to click anything to select an option. They could simply stare at an option they wish to select, waiting for just a few seconds.
As I made an initial sketch of our product, our team did a walkthrough of our service and decided to also add a scoring functionality and a comment board. Displaying instructions through the comment board would give users a better understanding of what they need to do next.
For the implementation side, I mainly worked on three things: eye gaze selection algorithm, calibration functionality, and a timer widget. Firstly, because the Webgazer library uses the webcam in the user’s device, the computed eye gaze locations were not as precise as we wanted it to be. To improve the accuracy, we added a calibration page that automatically transitions into our main game page after making the system more adjusted to the user’s environment. I built the calibration functionality with jQuery library that automatically triggers each calibration event after one another to not burden users with too many tasks at one time.
Secondly, to compute the eye gaze location, we took the value of the center of the window, and based on that value, we made our program dynamically divide the window into four quadrants that each represent one answer choice. Because users can resize the window anytime, we figured that this is a better solution than setting static values to represent each quadrant.
Lastly, I created a timer widget that triggers a change in the comment board when a certain amount of time has expired.
One of the most important issues to consider when working on an accessible or assistive technology is that the technology must be tested with its target users. For instance, building a ramp that hasn't been tested with a user on a wheelchair might easily fail to fulfill its purpose.
I wholeheartedly agree with this perspective; however, because of the scope of this project, we weren't able to take on user testing. If we had enough resources to continue this work, we would test this technology with users who aren't able to use their hands. I believe using both self-report measures (questionnaire and interview) and behavioral data (e.g. recording users' behaviors and measuring task performance/duration) would give us insight on the usability of this technology.