mirror of
https://github.com/microsoft/PowerToys.git
synced 2026-04-09 04:37:30 +02:00
Screen reader announces role and state for Awake tray menu items (#13904)
This commit is contained in:
@@ -175,7 +175,7 @@ namespace Awake.Core
|
|||||||
};
|
};
|
||||||
|
|
||||||
// No keep-awake menu item.
|
// No keep-awake menu item.
|
||||||
ToolStripMenuItem? passiveMenuItem = new ToolStripMenuItem
|
CheckButtonToolStripMenuItem? passiveMenuItem = new CheckButtonToolStripMenuItem
|
||||||
{
|
{
|
||||||
Text = "Off (Passive)",
|
Text = "Off (Passive)",
|
||||||
};
|
};
|
||||||
@@ -189,7 +189,7 @@ namespace Awake.Core
|
|||||||
};
|
};
|
||||||
|
|
||||||
// Indefinite keep-awake menu item.
|
// Indefinite keep-awake menu item.
|
||||||
ToolStripMenuItem? indefiniteMenuItem = new ToolStripMenuItem
|
CheckButtonToolStripMenuItem? indefiniteMenuItem = new CheckButtonToolStripMenuItem
|
||||||
{
|
{
|
||||||
Text = "Keep awake indefinitely",
|
Text = "Keep awake indefinitely",
|
||||||
};
|
};
|
||||||
@@ -202,7 +202,7 @@ namespace Awake.Core
|
|||||||
indefiniteKeepAwakeCallback();
|
indefiniteKeepAwakeCallback();
|
||||||
};
|
};
|
||||||
|
|
||||||
ToolStripMenuItem? displayOnMenuItem = new ToolStripMenuItem
|
CheckButtonToolStripMenuItem? displayOnMenuItem = new CheckButtonToolStripMenuItem
|
||||||
{
|
{
|
||||||
Text = "Keep screen on",
|
Text = "Keep screen on",
|
||||||
};
|
};
|
||||||
@@ -222,6 +222,7 @@ namespace Awake.Core
|
|||||||
};
|
};
|
||||||
|
|
||||||
timedMenuItem.Checked = mode == AwakeMode.TIMED;
|
timedMenuItem.Checked = mode == AwakeMode.TIMED;
|
||||||
|
timedMenuItem.AccessibleName = timedMenuItem.Text + (timedMenuItem.Checked ? ". Checked. " : ". UnChecked. ");
|
||||||
|
|
||||||
ToolStripMenuItem? halfHourMenuItem = new ToolStripMenuItem
|
ToolStripMenuItem? halfHourMenuItem = new ToolStripMenuItem
|
||||||
{
|
{
|
||||||
@@ -284,5 +285,38 @@ namespace Awake.Core
|
|||||||
TrayIcon.Text = text;
|
TrayIcon.Text = text;
|
||||||
TrayIcon.ContextMenuStrip = contextMenuStrip;
|
TrayIcon.ContextMenuStrip = contextMenuStrip;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private class CheckButtonToolStripMenuItemAccessibleObject : ToolStripItem.ToolStripItemAccessibleObject
|
||||||
|
{
|
||||||
|
private CheckButtonToolStripMenuItem _menuItem;
|
||||||
|
|
||||||
|
public CheckButtonToolStripMenuItemAccessibleObject(CheckButtonToolStripMenuItem menuItem)
|
||||||
|
: base(menuItem)
|
||||||
|
{
|
||||||
|
_menuItem = menuItem;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override AccessibleRole Role
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return AccessibleRole.CheckButton;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public override string Name => _menuItem.Text + ", " + Role + ", " + (_menuItem.Checked ? "Checked" : "Unchecked");
|
||||||
|
}
|
||||||
|
|
||||||
|
private class CheckButtonToolStripMenuItem : ToolStripMenuItem
|
||||||
|
{
|
||||||
|
public CheckButtonToolStripMenuItem()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override AccessibleObject CreateAccessibilityInstance()
|
||||||
|
{
|
||||||
|
return new CheckButtonToolStripMenuItemAccessibleObject(this);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user