アクセシビリティが主要なオペレーティングシステムで普及を続ける中、ハイコントラストモードは視覚的な明瞭さと使いやすさを向上させる重要な機能となっております。Qt 6.10のリリースにより、Qtで構築されたアプリケーションは複数のプラットフォームでハイコントラストモードを容易にサポートできるようになり、より包括的で視覚的に適応性のあるUIが保証されます。本記事では、Qt 6.10でハイコントラストモードのサポート、異なるシステムにおけるその意味、そしてQtが現在提供する組み込みスタイルについて探っていきます。
近年、Windows 11、macOS、Gnomeデスクトップなどの主要プラットフォームでは、ユーザーインターフェースの前景と背景のコントラストを強化するハイコントラストモードの設定が導入されています。これらのコントラスト設定を調整すると、通常はシステムカラースキームが更新され、場合によってはネイティブUIコントロールの輪郭がより鮮明になるなどの変更が加えられます。macOS、iOS、Gnomeでは、システム設定のアクセシビリティセクションにあるトグルスイッチで高コントラストを有効にでき、ほとんどのネイティブコントロールの輪郭が強調されます。Windows 11はコントラストテーマ機能によりより高度なアプローチを採用しており、有効化するとネイティブアプリケーションの外観に大幅な変更が生じます。
6.10 で導入される新機能の一つとして、システムが ハイコントラストモード で動作しているかどうかを検出する機能が追加されました。
ハイコントラストモード はすべてのプラットフォームで共通の標準化された概念ではないため、当社の定義では以下のいずれかの条件が満たされる場合に ハイコントラストモード が有効とみなします:
システムからの検出に加え、ユーザーのコントラスト設定により適切に対応するため、組み込みスタイルのいくつかを強化いたしました。
バージョン 6.10 では、Qt Widgets 向けの Windows 11、macOS、Fusion スタイル、および Qt Quick Controls 向けの Basic、Fusion、macOS、FluentWinUI3 が対象となります。
Basic スタイルでは、明るい色調と暗い色調の両方に対応した組み込みのカラーパレットが提供されるようになりました。また、ハイコントラストモードが有効な場合、ほとんどのコントロールの輪郭がより強調表示されます。以下の画像はシンプルなアプリケーションの例を示しています。左の画像は標準のコントラストモードでの表示、右の画像はハイコントラストモードでの表示です。
QtウィジェットのFusionスタイルと同様に、Fusionスタイルでは高コントラストモードが有効な場合、ほとんどのコントロールに太い輪郭を追加しております。下記のスクリーンショットは同一アプリケーションを、左側が標準コントラストモード、右側が高コントラストモードでの表示例としてご確認いただけます。
FluentWinUI3スタイルは、ネイティブのWinUI 3ウィンドウズアプリと同様の外観と操作性を採用するよう設計されています。バージョン6.10では、コントラストテーマ機能をご利用のお客様向けに、このスタイルに大幅な改善が施されました。ほとんどのコントロールは、システムテーマや外観に関わらず、ネイティブのものと非常に似た見た目になるはずです。
macOSスタイルはネイティブAPIを使用してコントロールをレンダリングするため、システム設定 → アクセシビリティ → ディスプレイ → コントラストを上げるで設定可能なコントラストを上げるモードを既にサポートしております。
Qt Widgetsでは複数の異なるウィンドウスタイルを提供しておりますが、現在最も関連性の高いのはWindows 11スタイルです。
通常、Windows 11スタイルでは公式のMicrosoft Figmaテンプレートからハードコードされた色が使用されますが、コントラストテーマが適用された場合には、代わりにGetSysColorから色情報を読み取る必要があります。期待される色が使用されるよう、このスタイルの改善を継続的に行っております。以下に、各種コントラストテーマ使用時の現在のスタイルのプレビューを掲載いたします。
Fusionスタイルでは、ハイコントラストが有効な場合、コントロールの輪郭がより強調されるようになりました。
Qt 6.10ではハイコントラストモードのサポートを追加し、アクセシブルで包括的なUIの作成をさらに容易にいたします。Windows 11、macOS、Fusion、FluentWinUI3などのプラットフォーム固有のコントラスト設定や組み込みスタイルに準拠することで、アプリケーションはより幅広いユーザー層にアクセシブルになるだけでなく、視覚的な一貫性も保たれます。さらに、様々なアクセシビリティ規制への準拠も容易になります。