<?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>2026-05-10</date>
<releaseinfo>Plasma 6.6</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 ten tabs: <link
linkend="access-zoom"><guilabel>Zoom &amp; Magnifier</guilabel></link>,<link
linkend="access-bell"><guilabel>System 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="mouse-navigation"><guilabel>Mouse Navigation</guilabel></link>, <link
linkend="access-activation-shortcuts"><guilabel>Activation Shortcuts</guilabel></link>, <link
linkend="access-screenreader"><guilabel>Screen Reader</guilabel></link>, <link
linkend="access-color-blindness"><guilabel>Color Blindness Correction</guilabel></link>, <link
linkend="access-invert"><guilabel>Invert</guilabel></link>, and <link
linkend="access-shake-pointer"><guilabel>Shake Pointer</guilabel></link>.
</para>


<sect3 id="access-zoom">
<title><guilabel>Zoom &amp; Magnifier</guilabel></title>

<para>
The Zoom and Magnifier tools in KDE Plasma are designed to enlarge portions of the screen,
serving as a digital magnifying glass. While they share the goal of making small text and
fine details more legible, they offer two distinct ways of interacting with the desktop environment.
</para>

<variablelist>
<varlistentry>
<term><guilabel>Zoom</guilabel></term>
<listitem>
<para>
Here you can switch between the <guilabel>Full screen</guilabel> and <guilabel>Magnify region</guilabel> modes.
</para>
</listitem>
</varlistentry>
</variablelist>

<variablelist>
<varlistentry>
<term><guilabel>Full screen</guilabel></term>
<listitem>
<para>
Enable fullscreen mode.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Show pixel grid at zoom level</guilabel></term>
<listitem>
<para>
Provide a visual overlay of the individual pixels that make up the image on your screen once you have reached a high enough magnification. If enabled, &plasma; draws a thin grid around every single pixel so you can see exactly where one ends and the next begins.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Pointer appearance</guilabel></term>
<listitem>
<para>Controls the mouse pointer appearance when zooming. There are several options: <guilabel>Scale</guilabel>, <guilabel>Keep</guilabel>, and <guilabel>Hide</guilabel>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Pointer tracking</guilabel></term>
<listitem>
<para>
<variablelist>
<varlistentry>
<term><guilabel>Proportional</guilabel></term>
<listitem>
<para>
Zoom area moves in sync with pointer.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Centered</guilabel></term>
<listitem>
<para>
Pointer stays centered on-screen, except near screen edges.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Centered (Strict)</guilabel></term>
<listitem>
<para>
Pointer stays centered on-screen, even near screen edges.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Push</guilabel></term>
<listitem>
<para>
Pointer pushes zoom area at screen edges.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Disabled</guilabel></term>
<listitem>
<para>
Zoom area does not follow pointer.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Sharpen screen content while zoomed in</guilabel></term>
<listitem>
<para>
If turned on, &kwin; will use pattern recognition to try to scale the shape
of text/icons on the workspace at extreme zoom levels. This would help improve
overall text contrast at the cost of font accuracy by avoiding blur or
pixelation.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Enable focus tracking</guilabel></term>
<listitem>
<para>
Ensures the magnified viewport automatically follows the <quote>active</quote> part of the interface, even if your mouse is not moving. While standard zoom usually follows the mouse cursor, focus tracking monitors the system focus (the text cursor or the currently selected UI element).
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Enable text caret tracking</guilabel></term>
<listitem>
<para>
Allows the system's magnification tools to follow the text cursor rather than just the mouse pointer. In technical environments—whether you are writing code, drafting a research manuscript, or filling out complex forms—your focus is often where you are typing, which may be far away from where your mouse is resting.
</para>
</listitem>
</varlistentry>
</variablelist>

<variablelist>
<varlistentry>
<term><guilabel>Magnify region</guilabel></term>
<listitem>
<para>
Enable the region magnification mode.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Width</guilabel></term>
<listitem>
<para>
Allows to configure the width of the magnified area.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Height</guilabel></term>
<listitem>
<para>
Allows to configure the height of the magnified area.
</para>
</listitem>
</varlistentry>
</variablelist>

<variablelist>
<varlistentry>
<term><guilabel>Disabled</guilabel></term>
<listitem>
<para>
Disable the scaling modes.
</para>
</listitem>
</varlistentry>
</variablelist>

<variablelist>
<varlistentry>
<term><guilabel>Zoom factor</guilabel></term>
<listitem>
<para>
Adjusts how much the screen enlarges with each step (&eg;, 1.2x or 2.0x). &plasma; supports extreme magnification levels (up to 100x), which is significantly higher than most other operating systems.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Scroll gesture modifier keys</guilabel></term>
<listitem>
<para>
Allows you to perform scrolling actions using a combination of a keyboard key and mouse movement, rather than using a physical scroll wheel.
</para>
<para>
This is particularly useful for users who use trackballs, specialized pointing devices without wheels, or who have motor impairments that make using a scroll wheel difficult.
</para>
<note>
<para>
Zoom scroll gestures are only available on Wayland.
</para>
</note>
</listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Scroll while modifier keys are pressed to zoom</guilabel></term>
<listitem>
<para>
When this option enabled, holding down a specific key (usually the &Meta; key) and rotating your mouse wheel (or using a two-finger scroll on a touchpad) will dynamically increase or decrease the magnification of the entire desktop.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Configure Shortcuts…</guilabel></term>
<listitem>
<para>
Use shortcuts to control zoom.
</para>
</listitem>
</varlistentry>
</variablelist>

</sect3>

<sect3 id="access-bell">
<title><guilabel>System 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="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-activation-shortcuts">
<title><guilabel>Activation Shortcuts</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="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>

<sect3 id="access-color-blindness">
<title><guilabel>Color Blindness Correction</guilabel></title>

<para>
It is an accessibility tool designed to help users with color vision deficiencies better distinguish between colors on their screen.
</para>
<para>
Unlike simple filters that change the <quote>look</quote> of the desktop, this feature uses <ulink url="https://en.wikipedia.org/wiki/Color_blindness">daltonization algorithms</ulink>. These algorithms shift problematic color frequencies into parts of the spectrum that the user can see more clearly, helping to restore contrast that would otherwise be lost.
</para>
<para>
Main objectives:
</para>
<itemizedlist>
<listitem>
<para>
Many interfaces use color to convey meaning (&eg;, green for <quote>success</quote> and red for <quote>error</quote>). For someone with protanopia or deuteranopia, these may look identical. The correction pane shifts these colors so the distinction becomes visible.
</para>
</listitem>
<listitem>
<para>
It ensures that buttons, graphs, and highlighted text are legible, regardless of the original design's color palette.
</para>
</listitem>
<listitem>
<para>
Because it is handled at the compositor level (&kwin;), the correction applies to everything—web browsers, specialized engineering software, videos, and the desktop interface itself.
</para>
</listitem>
</itemizedlist>
<para>
The pane typically offers adjustments for the three primary types of color blindness:
</para>
<itemizedlist>
<listitem>
<para>
Protanopia: Red-blindness (difficulty seeing red light).
</para>
</listitem>
<listitem>
<para>
Deuteranopia: Green-blindness (the most common form).
</para>
</listitem>
<listitem>
<para>
Tritanopia: Blue-blindness (rarer, difficulty distinguishing blue and yellow).
</para>
</listitem>
</itemizedlist>
<para>
The <guilabel>Problematic colors</guilabel> selection: You select the specific type of deficiency.
</para>
<para>
The <guilabel>Intensity</guilabel> slider: This is the most important part of the pane. It allows you to adjust the strength of the shift. Since color vision is a spectrum, a "one size fits all" filter rarely works; the slider lets you fine-tune the correction to your specific vision.
</para>
<note>
<para>
These filters are intended for accessibility, not for color-accurate work like professional photo editing or digital painting. Because they shift the color spectrum to make it "readable," the colors on the screen will no longer match the "true" hex codes or print values of the files you are viewing.
</para>
</note>
<para>
You can control the results using <guilabel>Adjusted colors</guilabel> swatches.
</para>
</sect3>

<sect3 id="access-invert">
<title><guilabel>Invert</guilabel></title>

<para>
This pane configures a tool to flip the color values of your screen—turning white pixels to black, blues to oranges, and so on. This is handled by the &kwin; window manager as a post-processing effect.
</para>
<para>
While it might look like a <quote>Negative</quote> photo filter, its primary purposes are functional rather than aesthetic:
</para>
<para>
For users with specific visual impairments, such as photophobia (light sensitivity) or certain types of low vision, a standard bright screen can cause physical pain or make text appear blurry due to <quote>light bleed.</quote>
</para>
<para>
Inverting the screen turns bright backgrounds dark and dark text light, significantly reducing the amount of light emitted by the monitor while maintaining the contrast needed to read.
</para>
<para>
While most modern applications have native dark modes, some older software or specific web pages are hard-coded with white backgrounds.
</para>
<para>
The Invert tool acts as a <quote>universal dark mode.</quote> If an application doesn't support a dark theme, you can force the colors to invert to save your eyes during late-night work sessions.
</para>
<para>
You can switch on the inversion using the <guilabel>Invert</guilabel> checkbox and <guibutton>Configure Shortcuts...</guibutton> for this action.
</para>
</sect3>

<sect3 id="access-shake-pointer">
<title><guilabel>Shake Pointer</guilabel></title>

<para>
In the &plasma; desktop environment, the <guilabel>Shake Pointer</guilabel> (often colloquially called "Shake to Find") is an accessibility and productivity feature designed to solve the "lost cursor" problem.
</para>
<para>
If you are using a multi-monitor setup, an ultra-high-resolution display, or simply have a dark wallpaper, it is remarkably easy to lose track of where the mouse cursor is. The purpose of this feature is to provide an immediate visual clue to help you locate it.
</para>
<para>
When the feature is enabled, the system monitors the velocity and direction of mouse movements. If it detects a rapid back-and-forth "shaking" motion:
</para>
<itemizedlist>
<listitem>
<para>
Temporary enlargement: The cursor increases in size to the large scale.
</para>
</listitem>
<listitem>
<para>
Visual focus: This sudden change in scale catches the human eye’s peripheral vision, instantly revealing the cursor's coordinates.
</para>
</listitem>
<listitem>
<para>
Automatic reset: As soon as you stop shaking the mouse, the cursor shrinks back to its normal size.
</para>
</listitem>
</itemizedlist>
<para>There are several options on this panel.</para>

<variablelist>
<varlistentry>
<term><guilabel>Shake pointer to find it</guilabel></term>
<listitem>
<para>
If this option is enabled, &plasma; enables the shake pointer effect.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Magnification</guilabel></term>
<listitem>
<para>
    Here you can specify pointer magnification level for <guilabel>Normal</guilabel> and <guilabel>Large</guilabel> pointer size.
</para>
</listitem>
</varlistentry>

</variablelist>

</sect3>

</sect2>

</sect1>

</article>
