<?xml version="1.0" ?>
<!DOCTYPE article PUBLIC "-//KDE//DTD DocBook XML V4.5-Based Variant V1.1//EN"
"dtd/kdedbx45.dtd" [
<!ENTITY % addindex "IGNORE">
<!ENTITY % English "INCLUDE" > <!-- change language only here -->
]>

<article id="kcmaccess" lang="&language;">
<title>Accessibility</title>
<articleinfo>
<authorgroup>	
<author>&Mike.McBride; &Mike.McBride.mail;</author>
<!-- TRANS:ROLES_OF_TRANSLATORS -->
</authorgroup>

<date>2021-04-08</date>
<releaseinfo>Plasma 5.20</releaseinfo>

<keywordset>
<keyword>KDE</keyword>
<keyword>Systemsettings</keyword>
<keyword>accessibility</keyword>
<keyword>keys</keyword>
<keyword>bell</keyword>
</keywordset>
</articleinfo>

<sect1 id="accessibility">
<title>Accessibility</title>
<sect2 id="accessibility-intro">

<title>Introduction</title>

<para>This module is designed to help users who have difficulty hearing
audible cues, or who have difficulty using a keyboard.  </para>

<para>
The module is divided into six tabs: <link
linkend="access-bell"><guilabel>Bell</guilabel></link>, <link
linkend="access-modifier-keys"><guilabel>Modifier keys</guilabel></link>, <link
linkend="access-keyboard-filters"><guilabel>Keyboard Filters</guilabel></link>, <link
linkend="access-activation-gestures"><guilabel>Activation Gestures</guilabel></link>, <link
linkend="mouse-navigation"><guilabel>Mouse Navigation</guilabel></link>, and <link
linkend="access-screenreader"><guilabel>Screen Reader</guilabel></link>.
</para>

<sect3 id="access-bell">
<title><guilabel>Bell</guilabel></title>

<para>
This panel is divided into an <guilabel>Audible Bell</guilabel> section
and a <guilabel>Visible Bell</guilabel> section.
</para>

<para>
The top check box labeled <guilabel>Use System Bell</guilabel>, determines
whether the normal System bell rings.  If this option is disabled, the
System bell will be silenced.
</para>

<para>
The next check box down can be used to play a different sound whenever
the system bell is triggered.  To activate, place a mark in the check
box labeled <guilabel>Use customized bell</guilabel>, and enter the
complete pathname to the sound file in the text box labeled
<guilabel>Sound to play</guilabel>.  If you want, you can select the
<guibutton>Browse</guibutton> button to navigate through your filesystem
to find the exact file.
</para>

<para>
For those users who have difficulty hearing the System bell, or those
users who have a silent computer, &kde; offers the <emphasis>visual bell</emphasis>.  This
provides a visual signal (inverting the screen or flashing a color
across it) when the system bell would normally sound.
</para>

<para>
To use the visual bell, first place a mark in the check box labeled
<guilabel>Use visual bell</guilabel>.
</para>

<para>
You can then select between <guilabel>Invert screen</guilabel>, or
<guilabel>Flash screen</guilabel>.  If you select <guilabel>Invert
screen</guilabel>, all colors on the screen will be reversed.  If you
choose <guilabel>Flash screen</guilabel>, you can choose the color by
clicking the button to the right of the <guilabel>Flash
screen</guilabel> selection.
</para>

<para>
The spin box can be used to adjust the duration of the visible
bell.  The default value is 500 msec, or half a second.
</para>

</sect3>

<sect3 id="access-modifier-keys">
<title><guilabel>Modifier keys</guilabel></title>

<para>There are the two sections <guilabel>Sticky Keys</guilabel>
and <guilabel>Locking Keys</guilabel> to this panel.</para>

<variablelist>
<varlistentry>
<term><guilabel>Use Sticky Keys</guilabel></term>
<listitem>
<para>
If this option is enabled, you can press and release the &Shift;,
&Alt; or &Ctrl; keys, and then press another key to get a key combo
(example: <keycombo action="simul">&Ctrl;&Alt;&Del;</keycombo> could
be done with &Ctrl;, then &Alt; and then &Del;).
</para>

<para>
Also in this section is a check box labeled <guilabel>Lock Sticky
Keys</guilabel>.  If this check box is enabled, the &Alt;, &Ctrl;
and &Shift; keys stay <quote>selected</quote> until you
<quote>de-selected</quote> them.
</para>

<para>
As an example:
</para>
<variablelist>
<varlistentry>
<term>With <guilabel>Lock Sticky Keys</guilabel> disabled:</term>
<listitem>
<para>If you press the &Shift; key then press the
<keycap>F</keycap> key, the computer interprets this as <keycombo
action="simul">&Shift;<keycap>F</keycap></keycombo>.  Now if you
type a <keycap>P</keycap>, the computer interprets this as the letter p
(no shift).
</para>
</listitem>
</varlistentry>

<varlistentry>
<term>With <guilabel>Lock Sticky Keys</guilabel> enabled:</term>
<listitem>
<para>
If you press the &Shift; key <emphasis>twice</emphasis> then press the <keycap>F</keycap> key,
the computer interprets this as <keycombo
action="simul">&Shift;<keycap>F</keycap></keycombo>.  Now if you
type a <keycap>P</keycap>, the computer interprets this as the letter P
(<keycombo action="simul">&Shift;<keycap>P</keycap></keycombo>). To
de-select the &Shift; key, press it again.
</para>
</listitem>
</varlistentry>
</variablelist>
<!--this is missing - explain it
<para><guilabel>Turn sticky keys off when two keys are pressed simultaneously</guilabel></para>
<para><guilabel>Use system bell whenever a modifier gets latched, locked or unlocked</guilabel></para>
-->
</listitem>
</varlistentry>
<!-- explain use case etc
<guilabel>Locking Keys</guilabel> what is that?
<varlistentry>
<term><guilabel>Use system bell whenever a locking key gets activated or deactivated</guilabel></term>
<listitem><para></para></listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Use Plasma's system notification mechanism whenever a modifier or locking key 
changes its state</guilabel></term>
<listitem><para>Click the <guibutton>Configure Notifications...</guibutton> button to open a dialog 
which allows you to edit the notifications for status changes of all keys</para></listitem>
</varlistentry>
-->
</variablelist>

</sect3>

<sect3 id="access-keyboard-filters">
<title><guilabel>Keyboard Filters</guilabel></title>

<para>There are two sections to this panel.</para>

<variablelist>
<varlistentry>
<term><guilabel>Use slow keys</guilabel></term>
<listitem>
<para>
If this option is enabled, you must hold the key down for a
specified length of time (adjustable with the spin box) before the
keystroke will be accepted. This helps prevent accidental key strokes.
</para>
</listitem>
</varlistentry>
<!-- Acceptance delay slider 500 ms default
Use system bell whenever a key is pressed/accepted/rejected
-->
<varlistentry>
<term><guilabel>Use bounce keys</guilabel></term>
<listitem>
<para>
If this option is enabled, you must wait for a specified length of time
(configurable with the spin box) before the next key press can be
accepted. This prevents accidental multiple key strokes.
</para>
</listitem>
</varlistentry>
<!-- Debounce time slider 500 ms default
Use system bell whenever a key is rejected
-->

</variablelist>

</sect3>

<sect3 id="access-activation-gestures">
<title><guilabel>Activation Gestures</guilabel></title>

<para>There are two sections to this panel.</para>

<variablelist>
<varlistentry>
<term><guilabel>Activation Gestures</guilabel> with these options:</term>
<listitem>
<para>
<simplelist>
<member><guilabel>Use gestures for activating sticky keys and slow keys</guilabel></member>
<member>Here you can activate keyboard gestures that turn on the following features:</member>
<member>Mouse Keys: Press &Shift;+NumLock</member>
<member>Sticky keys: Press &Shift; key 5 consecutive times</member>
<member>Slow keys: Hold down &Shift; for 8 seconds</member>
<member><guilabel>Turn sticky keys and slow keys off after a certain period of inactivity</guilabel></member>
</simplelist>
</para>
</listitem>
</varlistentry>

<varlistentry>
<term><guilabel>Notification</guilabel> with these options:</term>
<listitem>
<para>
<simplelist>
<member><guilabel>Use the system bell whenever a gesture is used to turn an accessibility 
feature on or off</guilabel></member>

<member><guilabel>Show a confirmation dialog whenever a keyboard accessibility feature is 
turned on or off</guilabel></member>
<member>If this option is checked, &kde; will show a confirmation dialog whenever a 
keyboard accessibility feature is turned on or off.</member>
<member>Ensure you know what you are doing if you uncheck it, as the keyboard 
accessibility settings will then always be applied without confirmation.</member>

<member><guilabel>Use &kde;'s system notification mechanism whenever a keyboard accessibility 
feature is turned on or off</guilabel></member>
</simplelist>
</para>
</listitem>
</varlistentry>
</variablelist>
<para>Click the <guibutton>Configure Notifications</guibutton> button to open a dialog 
which allows you to edit the notifications for status changes of all keys.</para>

</sect3>

<sect3 id="mouse-navigation">
<title>Mouse Navigation</title>

<para>
This tab allows you to configure the keyboard number pad keys as a mouse-type device. This may be useful when you are working on a device without another pointing device, or where you have no other use for the number pad.
</para>

<variablelist>

<varlistentry>
<term><guilabel>Move pointer with keyboard (using the num pad)</guilabel></term>
<listitem>
<para>
To enable keyboard mouse mode, you need to select the check box labeled <guilabel>Move pointer with keyboard (using the num pad)</guilabel>. When you do this, the other settings will become enabled, and you can customize the keyboard pointer behavior further, if required.
</para>
<para>
The various keys on the number pad move in the direction you would expect. Note that you can move diagonally as well as up, down, left and right.  The <keycap>5</keycap> key emulates a click to a pointer button, typically &LMB;. You change which button is emulated by using the <keycap>/</keycap> key (which makes it &LMB;), <keycap>*</keycap> key (which makes it &MMB;) and <keycap>-</keycap> (which makes it &RMB;). Using the <keycap>+</keycap> emulates a double click to the selected pointer button. You can use the <keycap>0</keycap> key to emulate holding down the selected pointer button (for easy dragging), and then use the <keycap>.</keycap> to emulate releasing the selected pointer button.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term><guilabel>Acceleration delay</guilabel></term>
<listitem>
<para>
This is the time (in milliseconds) between the initial key press and the first repeated motion event for mouse key acceleration.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term><guilabel>Repeat interval</guilabel></term>
<listitem>
<para>
This is the time in milliseconds between repeated motion events for mouse key acceleration.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term><guilabel>Acceleration time</guilabel></term>
<listitem>
<para>
This is the time in milliseconds before the pointer reaches a maximum speed for mouse key acceleration.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term><guilabel>Maximum speed</guilabel></term>
<listitem>
<para>
This is the maximum speed in pixels per second the pointer can reach for mouse key acceleration.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term><guilabel>Pointer acceleration</guilabel></term>
<listitem>
<para>
This is the amount of acceleration to apply to mouse key acceleration.
</para>
</listitem>
</varlistentry>

</variablelist>

</sect3>

<sect3 id="access-screenreader">
<title><guilabel>Screen Reader</guilabel></title>

<para>Install a screen reader application like
<ulink url="https://en.wikipedia.org/wiki/Orca_(assistive_technology)">Orca</ulink>
together with <application>speech-dispatcher</application>.
</para>

<para>Test that sound from speech dispatcher works using the command
<command>spd-say hello</command> in a terminal.
</para>

<para>In addition you need a text to speech synthesizer like &eg; <application>espeak</application>.
</para>

<para>Enable the screen reader in the checkbox, logout and restart your desktop session.
</para>

<para>For &plasma; itself, make sure to use the traditional <guilabel>Application Menu</guilabel>,
and check that this menu has a keyboard shortcut associated
(<keycombo action="simul">&Alt;<keycap>F1</keycap></keycombo>).
When pressing this shortcut, the menu should open and be read when navigating
the menu with the arrow keys.
</para>
</sect3>

</sect2>

</sect1>

</article>
