This state is used for visited link-like widgets.
It has no ARIA equivalent, e. g. can not be set programmatically, but it
exists in the browser environment as well.
| %GTK_ACCESSIBLE_STATE_INVALID | “aria-invalid” | `GtkAccessibleInvalidState` | Set when a widget is showing an error |
| %GTK_ACCESSIBLE_STATE_PRESSED | “aria-pressed” | `GtkAccessibleTristate` | Indicates the current state of a [class@Gtk.ToggleButton] |
| %GTK_ACCESSIBLE_STATE_SELECTED | “aria-selected” | boolean or undefined | Set when a widget is selected |
+| %GTK_ACCESSIBLE_STATE_VISITED | N/A | boolean or undefined | Set when a link-like widget is visited |
#### List of accessible properties
}
}
+ if (gtk_at_context_has_accessible_state (ctx, GTK_ACCESSIBLE_STATE_VISITED))
+ {
+ value = gtk_at_context_get_accessible_state (ctx, GTK_ACCESSIBLE_STATE_VISITED);
+ if (value->value_class->type == GTK_ACCESSIBLE_VALUE_TYPE_BOOLEAN)
+ {
+ if (gtk_boolean_accessible_value_get (value))
+ set_atspi_state (&states, ATSPI_STATE_VISITED);
+ }
+ }
+
if (gtk_at_context_has_accessible_property (ctx, GTK_ACCESSIBLE_PROPERTY_REQUIRED))
{
value = gtk_at_context_get_accessible_property (ctx, GTK_ACCESSIBLE_PROPERTY_REQUIRED);
emit_state_changed (self, "selectable", FALSE);
}
+ if (changed_states & GTK_ACCESSIBLE_STATE_CHANGE_VISITED)
+ {
+ value = gtk_accessible_attribute_set_get_value (states, GTK_ACCESSIBLE_STATE_VISITED);
+ if (value->value_class->type == GTK_ACCESSIBLE_VALUE_TYPE_BOOLEAN)
+ {
+ emit_state_changed (self, "visited",gtk_boolean_accessible_value_get (value));
+ }
+ }
+
if (changed_properties & GTK_ACCESSIBLE_PROPERTY_CHANGE_READ_ONLY)
{
gboolean readonly;
.ctype = GTK_ACCESSIBLE_COLLECT_BOOLEAN | GTK_ACCESSIBLE_COLLECT_UNDEFINED,
.name = "selected"
},
+ [GTK_ACCESSIBLE_STATE_VISITED] = {
+ .value = GTK_ACCESSIBLE_STATE_VISITED,
+ .ctype = GTK_ACCESSIBLE_COLLECT_BOOLEAN|GTK_ACCESSIBLE_COLLECT_UNDEFINED,
+ .name = "visited"
+ }
};
/* § 6.6.1 Widget attributes */
{
const GtkAccessibleCollect *cstate = &collect_states[state];
- g_return_val_if_fail (state <= GTK_ACCESSIBLE_STATE_SELECTED, NULL);
+ g_return_val_if_fail (state <= GTK_ACCESSIBLE_STATE_VISITED, NULL);
switch (cstate->value)
{
case GTK_ACCESSIBLE_STATE_EXPANDED:
case GTK_ACCESSIBLE_STATE_PRESSED:
case GTK_ACCESSIBLE_STATE_SELECTED:
+ case GTK_ACCESSIBLE_STATE_VISITED:
return gtk_undefined_accessible_value_new ();
case GTK_ACCESSIBLE_STATE_INVALID:
{
const GtkAccessibleCollect *cstate = &collect_states[state];
- g_return_val_if_fail (state <= GTK_ACCESSIBLE_STATE_SELECTED, NULL);
+ g_return_val_if_fail (state <= GTK_ACCESSIBLE_STATE_VISITED, NULL);
return gtk_accessible_value_collect_valist (cstate, error, args);
}
{
const GtkAccessibleCollect *cstate = &collect_states[state];
- g_return_val_if_fail (state <= GTK_ACCESSIBLE_STATE_SELECTED, NULL);
+ g_return_val_if_fail (state <= GTK_ACCESSIBLE_STATE_VISITED, NULL);
return gtk_accessible_value_collect_value (cstate, value, error);
}
{
const GtkAccessibleCollect *cstate = &collect_states[state];
- g_return_val_if_fail (state <= GTK_ACCESSIBLE_STATE_SELECTED, NULL);
+ g_return_val_if_fail (state <= GTK_ACCESSIBLE_STATE_VISITED, NULL);
return gtk_accessible_value_parse (cstate, str, len, error);
}
[GTK_ACCESSIBLE_STATE_INVALID] = "invalid",
[GTK_ACCESSIBLE_STATE_PRESSED] = "pressed",
[GTK_ACCESSIBLE_STATE_SELECTED] = "selected",
+ [GTK_ACCESSIBLE_STATE_VISITED] = "visited",
};
/*< private >
GTK_ACCESSIBLE_STATE_CHANGE_HIDDEN = 1 << GTK_ACCESSIBLE_STATE_HIDDEN,
GTK_ACCESSIBLE_STATE_CHANGE_INVALID = 1 << GTK_ACCESSIBLE_STATE_INVALID,
GTK_ACCESSIBLE_STATE_CHANGE_PRESSED = 1 << GTK_ACCESSIBLE_STATE_PRESSED,
- GTK_ACCESSIBLE_STATE_CHANGE_SELECTED = 1 << GTK_ACCESSIBLE_STATE_SELECTED
+ GTK_ACCESSIBLE_STATE_CHANGE_SELECTED = 1 << GTK_ACCESSIBLE_STATE_SELECTED,
+ GTK_ACCESSIBLE_STATE_CHANGE_VISITED = 1 << GTK_ACCESSIBLE_STATE_VISITED
} GtkAccessibleStateChange;
struct _GtkATContext
* enumeration
* @GTK_ACCESSIBLE_STATE_SELECTED: A “selected” state; set when a widget
* is selected. Value type: boolean or undefined
+ * @GTK_ACCESSIBLE_STATE_VISITED: Indicates that a widget with the
+ * GTK_ACCESSIBLE_ROLE_LINK has been visited. Value type: boolean. Since: 4.12
*
* The possible accessible states of a [iface@Accessible].
*/
GTK_ACCESSIBLE_STATE_HIDDEN,
GTK_ACCESSIBLE_STATE_INVALID,
GTK_ACCESSIBLE_STATE_PRESSED,
- GTK_ACCESSIBLE_STATE_SELECTED
+ GTK_ACCESSIBLE_STATE_SELECTED,
+ GTK_ACCESSIBLE_STATE_VISITED
} GtkAccessibleState;
/**