xcrun simctl uiは、iOSシミュレータのUI設定を取得・変更するサブコマンドである。
increase_contrastオプションを使うと、アクセシビリティ設定「コントラストを上げる」をコマンドラインから取得・変更できる。
現在の設定を取得する
enabled/disabledの値を指定せず実行すると、現在の設定を取得できる。
デバイスはUDIDで指定するほか、起動中のデバイスであればbootedが使える。
$ xcrun simctl ui booted increase_contrast
disabled
取得できる値はenabled、disabled、unsupported(プラットフォームやランタイムが対応していない)、unknown(設定の検出に失敗した)のいずれかである。
起動していないデバイスに対して実行するとエラーにはならず、unknownが返る。
設定を変更する
enabledまたはdisabledを指定すると設定を変更できる。
$ xcrun simctl ui booted increase_contrast enabled
$ xcrun simctl ui booted increase_contrast
enabled
見た目の違い
コントラストを上げると、Dockや検索バーなど半透明なUI要素の背景のぼかし・透過が抑えられ、輪郭がはっきりと見えるようになる。
無効時のDock周辺は以下のとおりである。

有効時は背景の透過が弱まり、輪郭がはっきり見える。

活用例: アクセシビリティ対応のUI確認
コントラストを上げた状態でのUI崩れは、実機でアクセシビリティ設定を切り替えながら手動確認するよりも、シミュレータでの確認が効率的である。
increase_contrastで設定を切り替えてスクリーンショットを撮影するだけで確認できる。
$ xcrun simctl ui booted increase_contrast enabled
$ xcrun simctl io booted screenshot high-contrast.png
CIに組み込めば、コントラスト強調時にテキストや境界線が視認しづらくなっていないかをリリースごとに機械的にチェックできる。
\第一線のプログラマーの行動原理を学べる!/
