To build a better world sometimes means having to tear the old one down.
-- Alexander Pierce, "Captain America: The Winter Soldier"
ATK served us well for nearly 20 years, but the world has changed, and
GTK has changed with it. Now ATK is mostly a hindrance towards improving
the accessibility stack:
- it maps to a very specific implementation, AT-SPI, which is Linux and
Unix specific
- it requires implementing the same functionality in three different
layers of the stack: AT-SPI, ATK, and GTK
- only GTK uses it; every other Linux and Unix toolkit and application
talks to AT-SPI directly, including assistive technologies
Sadly, we cannot incrementally port GTK to a new accessibility stack;
since ATK insulates us entirely from the underlying implementation, we
cannot replace it piecemeal. Instead, we're going to remove everything
and then incrementally build on a clean slate:
- add an "accessible" interface, implemented by GTK objects directly,
which describe the accessible role and state changes for every UI
element
- add an "assistive technology context" to proxy a native accessibility
API, and assign it to every widget
- implement the AT context depending on the platform
For more information, see: https://gitlab.gnome.org/GNOME/gtk/-/issues/2833
117 lines
4.5 KiB
XML
117 lines
4.5 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<interface>
|
|
<object class="GtkAdjustment" id="adjustment1">
|
|
<property name="upper">4</property>
|
|
<property name="value">2</property>
|
|
<property name="step-increment">0.1</property>
|
|
<property name="page-increment">1</property>
|
|
</object>
|
|
<object class="GtkAdjustment" id="adjustment2">
|
|
<property name="upper">4</property>
|
|
<property name="value">2</property>
|
|
<property name="step-increment">0.1</property>
|
|
<property name="page-increment">1</property>
|
|
</object>
|
|
<object class="GtkAdjustment" id="adjustment3">
|
|
<property name="upper">4</property>
|
|
<property name="value">2</property>
|
|
<property name="step-increment">0.1</property>
|
|
<property name="page-increment">1</property>
|
|
</object>
|
|
<object class="GtkWindow" id="window1">
|
|
<property name="title" translatable="yes">Scales</property>
|
|
<property name="resizable">0</property>
|
|
<child>
|
|
<object class="GtkGrid" id="grid1">
|
|
<property name="row-spacing">10</property>
|
|
<property name="column-spacing">10</property>
|
|
<property name="margin-start">20</property>
|
|
<property name="margin-end">20</property>
|
|
<property name="margin-top">20</property>
|
|
<property name="margin-bottom">20</property>
|
|
<child>
|
|
<object class="GtkLabel" id="label_plain">
|
|
<property name="label">Plain</property>
|
|
<property name="xalign">0</property>
|
|
<layout>
|
|
<property name="left-attach">0</property>
|
|
<property name="top-attach">0</property>
|
|
</layout>
|
|
</object>
|
|
</child>
|
|
<child>
|
|
<object class="GtkScale" id="scale_plain">
|
|
<property name="width-request">200</property>
|
|
<property name="draw-value">0</property>
|
|
<property name="adjustment">adjustment1</property>
|
|
<property name="hexpand">1</property>
|
|
<layout>
|
|
<property name="left-attach">1</property>
|
|
<property name="top-attach">0</property>
|
|
</layout>
|
|
</object>
|
|
</child>
|
|
<child>
|
|
<object class="GtkLabel" id="label_marks">
|
|
<property name="label">Marks</property>
|
|
<property name="xalign">0</property>
|
|
<layout>
|
|
<property name="left-attach">0</property>
|
|
<property name="top-attach">1</property>
|
|
</layout>
|
|
</object>
|
|
</child>
|
|
<child>
|
|
<object class="GtkScale" id="scale_marks">
|
|
<property name="width-request">200</property>
|
|
<property name="draw-value">0</property>
|
|
<property name="adjustment">adjustment2</property>
|
|
<property name="hexpand">1</property>
|
|
<marks>
|
|
<mark value="0" position="bottom"></mark>
|
|
<mark value="1" position="bottom"></mark>
|
|
<mark value="2" position="bottom"></mark>
|
|
<mark value="3" position="bottom"></mark>
|
|
<mark value="4" position="bottom"></mark>
|
|
</marks>
|
|
<layout>
|
|
<property name="left-attach">1</property>
|
|
<property name="top-attach">1</property>
|
|
</layout>
|
|
</object>
|
|
</child>
|
|
<child>
|
|
<object class="GtkLabel" id="label_discrete">
|
|
<property name="label">Discrete</property>
|
|
<property name="xalign">0</property>
|
|
<layout>
|
|
<property name="left-attach">0</property>
|
|
<property name="top-attach">2</property>
|
|
</layout>
|
|
</object>
|
|
</child>
|
|
<child>
|
|
<object class="GtkScale" id="scale_discrete">
|
|
<property name="width-request">200</property>
|
|
<property name="round-digits">0</property>
|
|
<property name="draw-value">0</property>
|
|
<property name="adjustment">adjustment3</property>
|
|
<property name="hexpand">1</property>
|
|
<marks>
|
|
<mark value="0" position="bottom"></mark>
|
|
<mark value="1" position="bottom"></mark>
|
|
<mark value="2" position="bottom"></mark>
|
|
<mark value="3" position="bottom"></mark>
|
|
<mark value="4" position="bottom"></mark>
|
|
</marks>
|
|
<layout>
|
|
<property name="left-attach">1</property>
|
|
<property name="top-attach">2</property>
|
|
</layout>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
</interface>
|