Single Switch Facebook Control

fullfattruckMobile - Wireless

Dec 10, 2013 (4 years and 7 months ago)


Single Switch Facebook Control

CSE 453

Problem Free Requirements

Revision 1.2



Description of Problem



History and Insufficiencies of Current Options






Insufficiencies of Current Options



Functional Requirements



User Requirements



Customer Requirements



System and Configuration Requirements





Description of Problem

Disabled members of the community who have severely limited motor control, such as
quadriplegics and others suffering from paralysis, live their lives in a simple routine and
often have very little personal contact aside from their family and therapists. R
ecently, the
internet has become a means for anyone to easily interact with society. Giving disabled
people the ability to access and contribute to the thriving online community would give
them a cultural experience never before possible. Indeed, the adven
t of this technology
allows anyone with access to the internet to engage in a complete social experience.

For a majority of the potential users of the Facebook single switch control system, lack of
social interaction is a
problem, which

should be addresse
d. Without being able to move
around easily, the same basic social connections that

people have on a daily
basis are far less available. For some this may even include not being able to speak easily,
or at all. Although they do have the connect
ion with their therapists, often times this
relationship can be one more of dependence rather than a social friendship. Visitors are
definitely helpful for keeping morale up, but family members and friends might not always
be able to provide presence as of
ten as necessary.

The lack of social interactions can lead to a disconnection from society and potentially
. This is a problem that affects the quality of life for potential users. When we
look at the way the internet has evolved in recent year
s, the explosion of social networking
is a glaring component. No longer do people need to have face
face contact to do all of
the normal things we would associate with social interaction. This includes but is not
limited to storytelling, life updates, a
nd basic conversations. Social networking, focused on
Facebook, gives new capabilities to its users that takes the basics of face
interactions and expands on those. Now, one does not need to hear a story to get a
perspective of what his or her frie
nds and family members are doing; he or she can browse
through hundreds of user uploaded photos with descriptions, comments, and has the
ability to like/comment his or herself. Even simple feedback on pictures/videos, status
updates, and other posts gives
a limited but useful connection between two or more

The issue we would like to address is that most modern day computer interfaces have been
highly optimized to work well with the keyboard and mouse. A growing number of
products have also been o
ptimized for touch input, such as Android, Windows 8 and
Macintosh IOS. However, for those with physical or cognitive disabilities it may be
exceedingly difficult to operate the keyboard and mouse. Currently, there are other options
of controls that can be

used to

replace the keyboard and mouse in every fun
ction, or in
simpler functions.

These controls range from a simple mouse that requires less fine
motor skills, to controls that only require the use of the mouth or tongue. In this project we
are foc
used on the single
switch control. The single
switch technology is simple and
requires only a small movement and no fine motor skills, ideal for quadriplegics.

Unfortunately, for some, simply having a control that fits their limitations is not enough to
work ordinary programs such as social media. Until we have an interface optimized for
single switch input, using a single switch will continue to be extraordinarily inefficient and
time consuming. When single switch interaction with a computer is the main
method of
communication and entertainment, it is important that it works as well, and as quickly, as
possible. Simply emulating a mouse and keyboard is not sufficient.

While single switch computer interfaces have been exp
lored for other applications
, we
focused on social media interaction. Our aim is to provide a product for our users to
experience social networking by being a part of the Facebook community. Facebook has
risen to become a premier social networking medium with ov
er one billion monthly
The product should enable the disabled person to use the basic Facebook features using
only a single switch. The user should be able to create a Facebook profile and engage with
the functionality therein, including viewing and posting to their own
and other’s profiles
and pictures, adding friends, commenting on and liking events, and other functionality
discussed in this document. A click or a combination of clicks should help the user navigate,
browse and input to the web site.

We hope to provide

a means for these severely limited people to join the thriving online
community and experience a brand new opportunity to gain a social life. We hope to help
these people feel more freedom and suffer less from the depression associated with their
ties. We hope to develop a
product, which

is simple, easy to use, can be controlled
by a single switch, and provides access to a large part of Facebook’s content.

History and Insufficiencies of Current Options


Single switches have been u
sed many times in the past as a way to provide user input to a
computer system.

These switches often have simple methods of taking a single input and
turning it into a usable signal for computers.

Some of the methods used in the past have
been to scan th
e available options at a set speed, while waiting for the user to press the
switch down.

There are several different scanning methods that have been used including
circular scanning, linear scanning, and group
item scanning.

Circular scanning involves
rranging the selectable items in a circular format and going through them one by

This can often take too much time, as well as space on the screen.

Linear scanning
involves scrolling through displayed items one by one but in a more compact and
nable manner, such as a list or row/column.

Although this method makes better use
of space, we lose some efficiency when waiting for a choice at the bottom of the scroll.

final example, group
item scanning is the best method for our use, and the one
we would
like to see implemented in the final design.

This method is very similar to the linear
scanning method in that it makes use of the same row/column display.

The benefits are in
the manner that the choices are selected.

As opposed to linear scann
ing, each of the rows is
selected as an option.

A button push selects the row that the correct choice is in, and then
that row is parsed through until another button selects the correct choice.

Once a choice is
selected, then the table is restarted.

s method speeds up selection and makes good use
of the space on screen.

There are many different types of switches available which can be placed near and
controlled by various parts of the body. Switches which are pressed by the user, using some
part of
his or her body, with varying pressure thresholds are available, as well as switches
which respond to a puff of air by the mouth.

Because the switch will simply generate one
event in this application, any of these options will be valid input methods.

Motor Ability

At the Unive
rsity at Pittsburgh, a study

was conducted on users ability to use assistive
technology devices. Their main focus was to see switch control, accuracy, ease of control,
and quality of movement for the customers. They broke down

the system into four parts,
the human interface, the processor, activity output, and the environmental interface. They
asked the participants what they thought were the most important aspects of this system.
The following is the list with the most importa
nt at the top.


Reliability of motor movement

affects th
e consumer’s ability to operate



Movement should be volitional

without strai
n on the consumer, movements to

the switch should be voluntary and performed comfortably.

Safety issues should be considered

design of switch.


Movements that are easily performed

technology providers should not request

individuals to perform movements that are unnatural.



ability to sustain a force and to apply the forc
e repeatedly over a period of

Insufficiencies of Current Options

Throughout the existence of the personal computer, software that takes advantage of a
single switch input has been created.

Some examples of this software that is currently
available t
o the public are made by the

company Inclusive Technology

Technology writes software that can be used to help children learn and have fun, all with
only one input.

Other examples of software that is available can be employed to help
people of

all ages use the computer and communicate in ways that were previously
unavailable for the handicapped.

There is no such software that opens up the booming
social network, including Facebook.

Other programs are very useful for entertaining and
even teac
hing its users, but do not necessarily take advantage of the internet.

By giving our
handicapped users the ability to access Facebook in a simplified manner, we open up a
world of opportunities.

The following are existing single switch solutions.



is a single switch program
which highlights a possible selection for
the user by cycling through a grid. To
access the desired option as quickly as


breaks up the buttons
into blocks containing multiple selections
at a time. When the user selects the
highlighted block, the program will then
cycle through each row until indication of
a selection. The final step is highlighting a
single button and cycli
ng through the row.
This program is a direct substitute for a
mouse and keyboard.

It can be used with any browser or program since it uses clickable
options to move a mouse.


Full keyboard and mouse emulation

Group scanning

Highly configurable

Allows more than one switch input


Slower to use

Promotes mouse + keyboard emulation as primary mode of interface rather than
developing a unique fully
accessible interface.


One SwitchMouse

displays a glyph next to the mouse

cursor to

which action has been selected. There are also glyphs for
move right, move up, move down, double click, drag, right click, etc.


With practice, allows mouse to be controlled at high speeds.


Requires fine motor control al
ong with the ability to hold the
switch down

Only controls mouse

In both of these cases, as with all of the currently available solutions, there is no Facebook
specific solution. Moreover, existing solutions attempt to create an entire computer control

However, the effect of trying to produce an entire computer control
experience for users often becomes a cumbersome system not likely to be used except by
the more proficient disabled members of the community. By making a completely custom
erface for Facebook, we intend to provide an optimized experienced for disabled
persons of all levels of proficiency. This provides for natural extensions beyond single
switch use to advanced use with multiple switches, timed presses, or double presses for

more proficient users but if the core of the system is built to be extremely simple and
intuitive, almost any disabled person with the ability to read could use it naturally.

Functional Requirements

The following are the functions

that shall be provided by the Single Switch Facebook
Control application. This section provides no strict requirements for the structure of the
pages; it merely lists a set of functions, which must be included with a suggested
organization pattern.

User R


Top Level: The theme of the application shall be simplicity. Information is presented
concisely, using large text.


Menus and Content Areas: The prevailing premise of the application should be based
on automatic scrolling menus. Upon arriving at

any menu, each option should be
highlighted in sequence. The scrolling time must be slow enough for the user to act.
The following is a list of options that should be available within the application.


Main Menu: This menu may include links to the major pa
rts of the application.
The options must be highlighted in sequence and a switch press should select the
option. The Notifications and Requests options shall display a number denoting
how many notifications or requests are available (as in the Facebook web


News Feed:


: This content area shall consist of a list of simplified events as displayed on the
Facebook news feed. Friends’ posts and activities shall be displayed in a list. Each event
item shall consist of the name of the friend and th
eir profile picture, and a summary of
the event. The event items must appear simple; to that end, only a summary of the
event should be displayed.


: The status events shall be displayed several at a time on the page. The
page shall
automatically scroll through the events. Selecting any event opens the
Comment and Like page for that event, as described below. After the events, a “Next
Page” “Previous Page” and “First Page” button should be highlighted in sequence (if
applicable). Fina
lly, a “Back” button shall be available. Then the scrolling shall repeat
all of the options.




Content Area
: This content area shall consist of two menu items: Friends and Photos, a
“Post” option, and a list of user activity similar to the lis
t in the News Feed section. The
Post option shall allow a user to post a status (see: Text Entry). The event list is a
list of
the user’s own activity


: The “Photos”, “Friends”, and “Post” options are highlighted in sequence. A
switch press ove
r the Photos or Friends options brings up the appropriate menus (see
below). Selecting “Post” brings up the Text Entry interface. Then, the user’s own
activity is scrolled through. As with News Feed, pagination must be used so that events
are displayed sev
eral at a time with page options. Selecting an event brings up the Like
and Comment page. A back button is the final target in the scroll sequence.


: The interface for the user’s own photos shall be simplified. A list of albums is
scrolled through,
with the final option in this list being the pictures the user was tagged
in. At this point, the user may not add pictures to his or her profile as this would
require more advanced configuration. Pictures may be added by an external user in the
on section. Selecting an album brings up the pictures within, but they scroll
automatically in a slide show fashion.


The user has the options to “Like”, or “Comment” on the current picture, or go back.


: The Friends Page brings up a list of the user
’s friends. Friends are displayed on
pages of several at a time, highlighted in sequence, followed by the page control
options, and the back button.


Selecting a friend opens the Friend Page. This page is identical to the Profile Page,
except that a Main Me
nu button replaces the Back button. In this way, the user
can follow the path taken back through the menu structure except at a friend’s
page. Similarly, the friend’s pictures and friends list are available in the same way
as on the user page.


s: This is a simple section which consists of the user’s notifications. The
notifications are scrolled through automatically several at a time, using the pagination
mechanism described above if needed. Selecting a given notification brings up the Like
Comment page for that event. A Main Menu button is the final in the sequence.


Requests: This page allows simple access to any friend requests the user has. They are
automatically scrolled through. When a user selects a request, the options “Accept”,
“Not N
ow”, and “Back” are available. Pressing “Accept” adds the requester to the user’s
friends list. Pressing “Not Now” dismisses the request. A Main Menu button is the final
button in the sequence.



This section consists of options to send messages
to friends and to start
chat. These two options are highlighted in sequence, along with a Main Menu option.


Send Message
: Options to type the name of the friend or select from a list should
be provided. The text entry interface opens, and the user can enter the message. A
“Quit” and “Send” option shall be available on the texnt entry interface.


Start Chat
: In the same manne
r as in the Send Message section, the user can select
which friend to initiate chat with. The chat begins, and the application shall
remain in the Text Entry mode, with one option in this mode to send the current
message, and another to quit chat.


either of these modes using the quit options returns the user to the
Messaging page.


Search: This is a simple option, which automatically opens text entry. Once open,
the user begins typing a user or page name.

Auto completion is used, as
described in the

Text Entry section. Search results are scrolled through
automatically, along with an option to start another search, and to go back to the
main menu.


electing one of the pages listed in the search results opens that page. If the
page selected is another p
erson’s profile, the user will have the option to
send a friend request to that person or to view the public parts of their profile
(as in the Friend Page). If the page is not for a person, the user will have the
option to “Like” the page, and view its con


Like and Comment Page: In several points in the application, the Like and Comment
page opens for an event a user selected. The full text of the event is displayed, along
with the name and profile picture of the person who performed the event.


Top Lev
: The pages cycles among options to “Like”, “Comment”, and “Go Back”.
Selecting “Like” causes the user to like the page. The same options cycle again, but
with “Like” replaced by “Unlike”.


: When selecting comment, the following options are cycled

among: if
there are more than five existing comments, pagination is used, and the user can
select “Next Page”, “Previous Page”, “First Page”. Additionally, an option to post a
comment can be selected. Finally, a back button is available.


: Posting
a comment brings up a list of commonly entered comments
which scroll automatically. A custom comment can be entered as well: The option
for this is also highlighted. Selecting the custom comment brings up the text entry


Text Entry: A text entry
interface is used in many places in the application. The
interface shall consist of a grid of characters. The rows are selected in sequence,
followed by the columns. Auto
complete should be used heavily. The interface shall
predict the word the user is ent
ering. Selecting “Space” accepts the auto complete
option. Options to exit, send, etc. are available in the grid as appropriate.

Customer Requirements

bodied assistant:

We make the assumption that a therapist, family member,
aide, or any form of aid will be
available when the user is interfacing with the product. However, we do not expect this
person to be there for the duration of the usage. This assistant would need to get the user
setup on the computer by affixing the singl
e switch for them and opening the application
on the computer. The system is intended to be a web based application; however,
appropriate integration with the system as much as possible should be implemented to
ease the integration of the switch.

The Sing
le Switch Facebook application shall ultimately be made available for any users. It
is intended to be deployed on a public webserver once fully released. As such clients are
not intended to be paying customers but rather able
bodied assistants of disabled
who might benefit from the use of Facebook’s online community.

Appropriate application signing should be used to allow the application access to the user’s
system to check if the switch drivers are installed and if the switch is connected. These
checks shall happen upon browsing to the web page hosting the application. If the switch is
not detected, the user shall be warned and provided with instructions on connecting
common types of switches as well as where to locate drivers.

If the application

is loaded and a supported switch is detected, the user will be prompted to
sign into Facebook if not already signed in (automatic sign in is not a required feature as it
is supported through Facebook’s cookies). The able
bodied assistant can use the keybo
to sign in, or the user may use the swich
accessible keyboard as well. The user must have a
Facebook account, and setup of an account is not a required feature of this application. The
bodied assistant shall use Facebook’s actual page to create an


Any commercially available single switch capable of inputting a mouse or keyboard press
shall be supported. This software assumes appropriate drivers and control software is
installed prior to operation. Because the application will be running i
n a web browser, only
input devices which are already set
up and able to provide keyboard or mouse input shall
be supported.

System and Configuration Requirements

There should be a settings area that the assistant would access prior to use of
the product.
The purpose of the settings would be to personalize the experience for the user. Moreover,
the adjustments would allow the program to cater to every individual to create a tailored
experience. For example, one user may have no problem clicking

frequently, while others
might only be able to click once every few seconds. The adjustable settings will include:


Font and font size


Scrolling speed


Keyboard layout (tailored to ability of the user). Multiple keyboard schemes could be
included inc
luding some with focus on speed and others with focus on ease of access. These
options shall be selectable. Special characters for other languages shall be made available
in the settings.


Double click functions. Users who might be able to easily perform
a double click with the
switch could use the double click for special functions, such as navigating back.


Support for multiple switches (a possible future task). Users who are able to control two
or more switches shall be able to have special functions m
apped to secondary switches.
The function of the primary switch is as described within this specification. The function of
the secondary switch when present may be (a) a back feature, to return automatically to
the previous menu (b) a backspace function in

the keyboard mode or a means to select a
row and column faster by using one switch for row selection and one for column selection.
These features shall be enabled in the settings menu, along with other appropriate
secondary switch features.


The application will be easily accessible for the user, likely accessed on the internet. A
computer would be installed in the home of the disabled person or in a group care center.
This computer must have a compatible single switch connected t
o it, and internet access set
up for the user. It is important the environment in which the program runs is adaptable
since each user’s needs may vary.


This application’s testing will primarily automated to achieve maximum time efficien
Since Ruby on Rails is the development platform, we will employ the built in RSpec Testing
suite to accomplish this. Testing the user interface will be done manually since there are
multiple popular web browsers and each one needs to be tested individu
ally. These manual
tests will involve simply using the application and ensuring that simple interface elements
are acting as expected. RSpec is a beautifully implemented DRY (Don’t Repeat Yourself)
testing system that is built on the principles of TDD (Tes
t Driven Development). In fact,
generating the tests creates a large chunk of skeleton code to speed up the process even
more. Both designs patterns, DRY and TDD, help to create Rail’s extreme programming
environment that attracts so many developers for ra
pid development.

Why TDD?

Unfortunately, TDD does not feel very
rewarding to many newer novice
developers because it effectively doubles
the amount of initial work that must be
done. This happens because their

essentially one test per function of the
application. Some companies hire
hundreds of people for jobs that could
easily be accomplished with a small team
of thirty because they acquire so much
technical debt. Generally, this is due to
poorly modularize
d code and lack of TDD

Without TDD a project’s cost will quickly
become exponential as specifications change and bugs arise.

Ruby on Rails RSpec Testing

It is important to understand the various
layers involved in creating an application
because each
level has it’s own testing
phase which can be quite different from
the other layers. The model sits at the
lowest layer because the model is the
closest layer to pure data. The number one
cause of errors in an application is data
integrity problems. If a m
odel validation,
which forces a certain type of value on a
database record, is incorrect then the
database may have incorrect information.
If the lowest level of testing is not
implemented it can take a long time to find this because it compares to shootin
g a rabbit
from an

the RSpec testing integration the only way to find the data
inconsistency would be to load the web page into your browser and find out that the server
is returning a 500 error. Then, one must begin the long chain of inv
estigating where the
m originated. Not only does this

create a long and tedious bug resolution process,

the bug may never actually be found if it only happens in an obscure state. For this
reason, coupling tests tightly with individual layers is equally as essential as deciding to use
the TDD design pattern in the first place.


Paralysis and Depression


Evaluation of computer
access solutions


Types of Assitive Controls


Computer Interfaces for Quadriplegics


Crosses Billion Threshold


Switch Scanning Methods


Types of Switches


Angelo, Jennifer. "Factors Affecting the Use of a Single Switch with Assistiv

Technology Devices." Journal of Rehabilitation Research and Development 37.5 (2000):

98. Web:


Broderick, Tam
ara, and David J. C. MacKay. "Fast and Flexible Selection with a Single

Switch." PLOS ONE:. N.p., n.d. Web. 22 Oct. 2012:


Switch XS:



Oneswitch mouse:


Inclusive Technology