Skip to content

Commit 80c2f3d

Browse files
authored
Improved keyboard navigation, high contrast theme and screen reader support (#84)
1 parent 347ee0c commit 80c2f3d

File tree

108 files changed

+503
-43
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

108 files changed

+503
-43
lines changed

src/dev/impl/DevToys/Api/Tools/IToolProvider.cs

+6-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,12 @@ public interface IToolProvider : INotifyPropertyChanged
1212
/// <summary>
1313
/// Gets the name of the tool. It will be displayed in the list of tools.
1414
/// </summary>
15-
string? DisplayName { get; }
15+
string DisplayName { get; }
16+
17+
/// <summary>
18+
/// Gets the name of the tool that will be told to the user when using screen reader.
19+
/// </summary>
20+
string AccessibleName { get; }
1621

1722
/// <summary>
1823
/// Gets an object type that has a width, height and image data. It can be an icon through a font, an SVG...etc.

src/dev/impl/DevToys/DevToys.csproj

+4-3
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
<Compile Include="Core\OOP\AppService.cs" />
2626
<Compile Include="Core\Threading\AsyncLazy.cs" />
2727
<Compile Include="UI\Converters\BooleanToDoubleConverter.cs" />
28+
<Compile Include="UI\Converters\BooleanToIntegerConverter.cs" />
2829
<Compile Include="ViewModels\Tools\HtmlEncoderDecoder\HtmlEncoderDecoderToolProvider.cs" />
2930
<Compile Include="ViewModels\Tools\HtmlEncoderDecoder\HtmlEncoderDecoderToolViewModel.cs" />
3031
<Compile Include="ViewModels\Tools\PngJpgCompressor\ImageCompressionWorkItem.cs" />
@@ -293,8 +294,8 @@
293294
<Compile Include="Views\Tools\Base64EncoderDecoder\Base64EncoderDecoderToolPage.xaml.cs">
294295
<DependentUpon>Base64EncoderDecoderToolPage.xaml</DependentUpon>
295296
</Compile>
296-
<Compile Include="Views\Tools\GuidGenerator\GuidGeneratoToolPage.xaml.cs">
297-
<DependentUpon>GuidGeneratoToolPage.xaml</DependentUpon>
297+
<Compile Include="Views\Tools\GuidGenerator\GuidGeneratorToolPage.xaml.cs">
298+
<DependentUpon>GuidGeneratorToolPage.xaml</DependentUpon>
298299
</Compile>
299300
<Compile Include="Views\Tools\HashGenerator\HashGeneratorToolPage.xaml.cs">
300301
<DependentUpon>HashGeneratorToolPage.xaml</DependentUpon>
@@ -390,7 +391,7 @@
390391
<Generator>MSBuild:Compile</Generator>
391392
<SubType>Designer</SubType>
392393
</Page>
393-
<Page Include="Views\Tools\GuidGenerator\GuidGeneratoToolPage.xaml">
394+
<Page Include="Views\Tools\GuidGenerator\GuidGeneratorToolPage.xaml">
394395
<SubType>Designer</SubType>
395396
<Generator>MSBuild:Compile</Generator>
396397
</Page>

src/dev/impl/DevToys/LanguageManager.cs

+70
Original file line numberDiff line numberDiff line change
@@ -182,6 +182,11 @@ public class Base64EncoderDecoderStrings : ObservableObject
182182
{
183183
private readonly ResourceLoader _resources = ResourceLoader.GetForViewIndependentUse("Base64EncoderDecoder");
184184

185+
/// <summary>
186+
/// Gets the resource AccessibleName.
187+
/// </summary>
188+
public string AccessibleName => _resources.GetString("AccessibleName");
189+
185190
/// <summary>
186191
/// Gets the resource Ascii.
187192
/// </summary>
@@ -332,6 +337,11 @@ public class GuidGeneratorStrings : ObservableObject
332337
{
333338
private readonly ResourceLoader _resources = ResourceLoader.GetForViewIndependentUse("GuidGenerator");
334339

340+
/// <summary>
341+
/// Gets the resource AccessibleName.
342+
/// </summary>
343+
public string AccessibleName => _resources.GetString("AccessibleName");
344+
335345
/// <summary>
336346
/// Gets the resource Configuration.
337347
/// </summary>
@@ -367,6 +377,11 @@ public class GuidGeneratorStrings : ObservableObject
367377
/// </summary>
368378
public string MultiplySymbol => _resources.GetString("MultiplySymbol");
369379

380+
/// <summary>
381+
/// Gets the resource NumberOfGuidsToGenerate_AutomationProperties_Name.
382+
/// </summary>
383+
public string NumberOfGuidsToGenerate_AutomationProperties_Name => _resources.GetString("NumberOfGuidsToGenerate_AutomationProperties_Name");
384+
370385
/// <summary>
371386
/// Gets the resource Uppercase.
372387
/// </summary>
@@ -377,6 +392,11 @@ public class HashGeneratorStrings : ObservableObject
377392
{
378393
private readonly ResourceLoader _resources = ResourceLoader.GetForViewIndependentUse("HashGenerator");
379394

395+
/// <summary>
396+
/// Gets the resource AccessibleName.
397+
/// </summary>
398+
public string AccessibleName => _resources.GetString("AccessibleName");
399+
380400
/// <summary>
381401
/// Gets the resource Configuration.
382402
/// </summary>
@@ -422,6 +442,11 @@ public class HtmlEncoderDecoderStrings : ObservableObject
422442
{
423443
private readonly ResourceLoader _resources = ResourceLoader.GetForViewIndependentUse("HtmlEncoderDecoder");
424444

445+
/// <summary>
446+
/// Gets the resource AccessibleName.
447+
/// </summary>
448+
public string AccessibleName => _resources.GetString("AccessibleName");
449+
425450
/// <summary>
426451
/// Gets the resource ConfigurationTitle.
427452
/// </summary>
@@ -477,6 +502,11 @@ public class JsonFormatterStrings : ObservableObject
477502
{
478503
private readonly ResourceLoader _resources = ResourceLoader.GetForViewIndependentUse("JsonFormatter");
479504

505+
/// <summary>
506+
/// Gets the resource AccessibleName.
507+
/// </summary>
508+
public string AccessibleName => _resources.GetString("AccessibleName");
509+
480510
/// <summary>
481511
/// Gets the resource Configuration.
482512
/// </summary>
@@ -527,6 +557,11 @@ public class JsonYamlStrings : ObservableObject
527557
{
528558
private readonly ResourceLoader _resources = ResourceLoader.GetForViewIndependentUse("JsonYaml");
529559

560+
/// <summary>
561+
/// Gets the resource AccessibleName.
562+
/// </summary>
563+
public string AccessibleName => _resources.GetString("AccessibleName");
564+
530565
/// <summary>
531566
/// Gets the resource Configuration.
532567
/// </summary>
@@ -592,6 +627,11 @@ public class JwtDecoderEncoderStrings : ObservableObject
592627
{
593628
private readonly ResourceLoader _resources = ResourceLoader.GetForViewIndependentUse("JwtDecoderEncoder");
594629

630+
/// <summary>
631+
/// Gets the resource AccessibleName.
632+
/// </summary>
633+
public string AccessibleName => _resources.GetString("AccessibleName");
634+
595635
/// <summary>
596636
/// Gets the resource Configuration.
597637
/// </summary>
@@ -743,6 +783,11 @@ public class MarkdownPreviewStrings : ObservableObject
743783
{
744784
private readonly ResourceLoader _resources = ResourceLoader.GetForViewIndependentUse("MarkdownPreview");
745785

786+
/// <summary>
787+
/// Gets the resource AccessibleName.
788+
/// </summary>
789+
public string AccessibleName => _resources.GetString("AccessibleName");
790+
746791
/// <summary>
747792
/// Gets the resource Configuration.
748793
/// </summary>
@@ -788,6 +833,11 @@ public class PngJpgCompressorStrings : ObservableObject
788833
{
789834
private readonly ResourceLoader _resources = ResourceLoader.GetForViewIndependentUse("PngJpgCompressor");
790835

836+
/// <summary>
837+
/// Gets the resource AccessibleName.
838+
/// </summary>
839+
public string AccessibleName => _resources.GetString("AccessibleName");
840+
791841
/// <summary>
792842
/// Gets the resource Cancel.
793843
/// </summary>
@@ -868,6 +918,11 @@ public class RegExStrings : ObservableObject
868918
{
869919
private readonly ResourceLoader _resources = ResourceLoader.GetForViewIndependentUse("RegEx");
870920

921+
/// <summary>
922+
/// Gets the resource AccessibleName.
923+
/// </summary>
924+
public string AccessibleName => _resources.GetString("AccessibleName");
925+
871926
/// <summary>
872927
/// Gets the resource Configuration.
873928
/// </summary>
@@ -1156,6 +1211,11 @@ public class StringUtilitiesStrings : ObservableObject
11561211
{
11571212
private readonly ResourceLoader _resources = ResourceLoader.GetForViewIndependentUse("StringUtilities");
11581213

1214+
/// <summary>
1215+
/// Gets the resource AccessibleName.
1216+
/// </summary>
1217+
public string AccessibleName => _resources.GetString("AccessibleName");
1218+
11591219
/// <summary>
11601220
/// Gets the resource AlternatingCase.
11611221
/// </summary>
@@ -1311,6 +1371,11 @@ public class TextDiffStrings : ObservableObject
13111371
{
13121372
private readonly ResourceLoader _resources = ResourceLoader.GetForViewIndependentUse("TextDiff");
13131373

1374+
/// <summary>
1375+
/// Gets the resource AccessibleName.
1376+
/// </summary>
1377+
public string AccessibleName => _resources.GetString("AccessibleName");
1378+
13141379
/// <summary>
13151380
/// Gets the resource Configuration.
13161381
/// </summary>
@@ -1346,6 +1411,11 @@ public class UrlEncoderDecoderStrings : ObservableObject
13461411
{
13471412
private readonly ResourceLoader _resources = ResourceLoader.GetForViewIndependentUse("UrlEncoderDecoder");
13481413

1414+
/// <summary>
1415+
/// Gets the resource AccessibleName.
1416+
/// </summary>
1417+
public string AccessibleName => _resources.GetString("AccessibleName");
1418+
13491419
/// <summary>
13501420
/// Gets the resource ConfigurationTitle.
13511421
/// </summary>

src/dev/impl/DevToys/Strings/cs-CZ/Base64EncoderDecoder.resw

+3
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,9 @@
117117
<resheader name="writer">
118118
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
119119
</resheader>
120+
<data name="AccessibleName" xml:space="preserve">
121+
<value>Base 64 Encoder and Decoder tool</value>
122+
</data>
120123
<data name="Ascii" xml:space="preserve">
121124
<value>ASCII</value>
122125
</data>

src/dev/impl/DevToys/Strings/cs-CZ/GuidGenerator.resw

+6
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,9 @@
117117
<resheader name="writer">
118118
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
119119
</resheader>
120+
<data name="AccessibleName" xml:space="preserve">
121+
<value>Guid Generator tool</value>
122+
</data>
120123
<data name="Configuration" xml:space="preserve">
121124
<value>Konfigurace</value>
122125
</data>
@@ -138,6 +141,9 @@
138141
<data name="MultiplySymbol" xml:space="preserve">
139142
<value>x</value>
140143
</data>
144+
<data name="NumberOfGuidsToGenerate_AutomationProperties_Name" xml:space="preserve">
145+
<value>Number of GUID to generate</value>
146+
</data>
141147
<data name="Uppercase" xml:space="preserve">
142148
<value>Velká písmena</value>
143149
</data>

src/dev/impl/DevToys/Strings/cs-CZ/HashGenerator.resw

+3
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,9 @@
117117
<resheader name="writer">
118118
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
119119
</resheader>
120+
<data name="AccessibleName" xml:space="preserve">
121+
<value>Hash Generator tool</value>
122+
</data>
120123
<data name="Configuration" xml:space="preserve">
121124
<value>Konfigurace</value>
122125
</data>

src/dev/impl/DevToys/Strings/cs-CZ/HtmlEncoderDecoder.resw

+3
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,9 @@
117117
<resheader name="writer">
118118
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
119119
</resheader>
120+
<data name="AccessibleName" xml:space="preserve">
121+
<value>HTML Encoder and Decoder tool</value>
122+
</data>
120123
<data name="ConfigurationTitle" xml:space="preserve">
121124
<value>Konfigurace</value>
122125
</data>

src/dev/impl/DevToys/Strings/cs-CZ/JsonFormatter.resw

+3
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,9 @@
117117
<resheader name="writer">
118118
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
119119
</resheader>
120+
<data name="AccessibleName" xml:space="preserve">
121+
<value>JSON Formatter tool</value>
122+
</data>
120123
<data name="Configuration" xml:space="preserve">
121124
<value>Konfigurace</value>
122125
</data>

src/dev/impl/DevToys/Strings/cs-CZ/JsonYaml.resw

+3
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,9 @@
117117
<resheader name="writer">
118118
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
119119
</resheader>
120+
<data name="AccessibleName" xml:space="preserve">
121+
<value>JSON to YAML and YAML to JSON converter tool</value>
122+
</data>
120123
<data name="Configuration" xml:space="preserve">
121124
<value>Konfigurace</value>
122125
</data>

src/dev/impl/DevToys/Strings/cs-CZ/JwtDecoderEncoder.resw

+3
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,9 @@
117117
<resheader name="writer">
118118
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
119119
</resheader>
120+
<data name="AccessibleName" xml:space="preserve">
121+
<value>JWT Decoder tool</value>
122+
</data>
120123
<data name="Configuration" xml:space="preserve">
121124
<value>Konfigurace</value>
122125
</data>

src/dev/impl/DevToys/Strings/cs-CZ/MarkdownPreview.resw

+3
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,9 @@
117117
<resheader name="writer">
118118
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
119119
</resheader>
120+
<data name="AccessibleName" xml:space="preserve">
121+
<value>Markdown preview tool</value>
122+
</data>
120123
<data name="Configuration" xml:space="preserve">
121124
<value>Konfigurace</value>
122125
</data>

src/dev/impl/DevToys/Strings/cs-CZ/PngJpgCompressor.resw

+3
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,9 @@
117117
<resheader name="writer">
118118
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
119119
</resheader>
120+
<data name="AccessibleName" xml:space="preserve">
121+
<value>PNG and JPEG compressor tool</value>
122+
</data>
120123
<data name="Cancel" xml:space="preserve">
121124
<value>Cancel</value>
122125
</data>

src/dev/impl/DevToys/Strings/cs-CZ/RegEx.resw

+3
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,9 @@
117117
<resheader name="writer">
118118
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
119119
</resheader>
120+
<data name="AccessibleName" xml:space="preserve">
121+
<value>Regular expression tester tool</value>
122+
</data>
120123
<data name="Configuration" xml:space="preserve">
121124
<value>Konfigurace</value>
122125
</data>

src/dev/impl/DevToys/Strings/cs-CZ/StringUtilities.resw

+3
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,9 @@
117117
<resheader name="writer">
118118
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
119119
</resheader>
120+
<data name="AccessibleName" xml:space="preserve">
121+
<value>String utilities tool</value>
122+
</data>
120123
<data name="AlternatingCase" xml:space="preserve">
121124
<value>aLtErNaTiNg cAsE</value>
122125
</data>

src/dev/impl/DevToys/Strings/cs-CZ/TextDiff.resw

+3
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,9 @@
117117
<resheader name="writer">
118118
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
119119
</resheader>
120+
<data name="AccessibleName" xml:space="preserve">
121+
<value>Text comparer tool</value>
122+
</data>
120123
<data name="Configuration" xml:space="preserve">
121124
<value>Konfigurace</value>
122125
</data>

src/dev/impl/DevToys/Strings/cs-CZ/UrlEncoderDecoder.resw

+3
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,9 @@
117117
<resheader name="writer">
118118
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
119119
</resheader>
120+
<data name="AccessibleName" xml:space="preserve">
121+
<value>URL Encoder and Decoder tool</value>
122+
</data>
120123
<data name="ConfigurationTitle" xml:space="preserve">
121124
<value>Konfigurace</value>
122125
</data>

src/dev/impl/DevToys/Strings/en-US/Base64EncoderDecoder.resw

+3
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,9 @@
117117
<resheader name="writer">
118118
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
119119
</resheader>
120+
<data name="AccessibleName" xml:space="preserve">
121+
<value>Base 64 Encoder and Decoder tool</value>
122+
</data>
120123
<data name="Ascii" xml:space="preserve">
121124
<value>ASCII</value>
122125
</data>

src/dev/impl/DevToys/Strings/en-US/GuidGenerator.resw

+6
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,9 @@
117117
<resheader name="writer">
118118
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
119119
</resheader>
120+
<data name="AccessibleName" xml:space="preserve">
121+
<value>Guid Generator tool</value>
122+
</data>
120123
<data name="Configuration" xml:space="preserve">
121124
<value>Configuration</value>
122125
</data>
@@ -138,6 +141,9 @@
138141
<data name="MultiplySymbol" xml:space="preserve">
139142
<value>x</value>
140143
</data>
144+
<data name="NumberOfGuidsToGenerate_AutomationProperties_Name" xml:space="preserve">
145+
<value>Number of GUID to generate</value>
146+
</data>
141147
<data name="Uppercase" xml:space="preserve">
142148
<value>Uppercase</value>
143149
</data>

src/dev/impl/DevToys/Strings/en-US/HashGenerator.resw

+3
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,9 @@
117117
<resheader name="writer">
118118
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
119119
</resheader>
120+
<data name="AccessibleName" xml:space="preserve">
121+
<value>Hash Generator tool</value>
122+
</data>
120123
<data name="Configuration" xml:space="preserve">
121124
<value>Configuration</value>
122125
</data>

src/dev/impl/DevToys/Strings/en-US/HtmlEncoderDecoder.resw

+3
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,9 @@
117117
<resheader name="writer">
118118
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
119119
</resheader>
120+
<data name="AccessibleName" xml:space="preserve">
121+
<value>HTML Encoder and Decoder tool</value>
122+
</data>
120123
<data name="ConfigurationTitle" xml:space="preserve">
121124
<value>Configuration</value>
122125
</data>

0 commit comments

Comments
 (0)