@jjlmoya/utils-games-development 1.60.0 → 1.62.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/category/index.ts +2 -1
- package/src/entries.ts +2 -1
- package/src/index.ts +1 -0
- package/src/tests/locale_completeness.test.ts +2 -2
- package/src/tests/spanish_leakage.test.ts +25 -3
- package/src/tests/tool_validation.test.ts +2 -2
- package/src/tool/gameUIAccessibilityTester/bibliography.astro +6 -0
- package/src/tool/gameUIAccessibilityTester/bibliography.ts +10 -0
- package/src/tool/gameUIAccessibilityTester/component.astro +210 -0
- package/src/tool/gameUIAccessibilityTester/controller-actions.ts +92 -0
- package/src/tool/gameUIAccessibilityTester/controller.ts +237 -0
- package/src/tool/gameUIAccessibilityTester/dom-views.ts +193 -0
- package/src/tool/gameUIAccessibilityTester/entry.ts +28 -0
- package/src/tool/gameUIAccessibilityTester/evaluator.ts +43 -0
- package/src/tool/gameUIAccessibilityTester/game-ui-accessibility-stress-tester.css +982 -0
- package/src/tool/gameUIAccessibilityTester/i18n/de.ts +203 -0
- package/src/tool/gameUIAccessibilityTester/i18n/en.ts +199 -0
- package/src/tool/gameUIAccessibilityTester/i18n/es.ts +203 -0
- package/src/tool/gameUIAccessibilityTester/i18n/fr.ts +203 -0
- package/src/tool/gameUIAccessibilityTester/i18n/id.ts +203 -0
- package/src/tool/gameUIAccessibilityTester/i18n/it.ts +203 -0
- package/src/tool/gameUIAccessibilityTester/i18n/ja.ts +203 -0
- package/src/tool/gameUIAccessibilityTester/i18n/ko.ts +203 -0
- package/src/tool/gameUIAccessibilityTester/i18n/nl.ts +203 -0
- package/src/tool/gameUIAccessibilityTester/i18n/pl.ts +203 -0
- package/src/tool/gameUIAccessibilityTester/i18n/pt.ts +203 -0
- package/src/tool/gameUIAccessibilityTester/i18n/ru.ts +203 -0
- package/src/tool/gameUIAccessibilityTester/i18n/sv.ts +203 -0
- package/src/tool/gameUIAccessibilityTester/i18n/tr.ts +203 -0
- package/src/tool/gameUIAccessibilityTester/i18n/zh.ts +203 -0
- package/src/tool/gameUIAccessibilityTester/index.ts +11 -0
- package/src/tool/gameUIAccessibilityTester/logic.test.ts +57 -0
- package/src/tool/gameUIAccessibilityTester/logic.ts +157 -0
- package/src/tool/gameUIAccessibilityTester/report.ts +59 -0
- package/src/tool/gameUIAccessibilityTester/seo.astro +15 -0
- package/src/tool/gameUIAccessibilityTester/storage.ts +34 -0
- package/src/tool/gameUIAccessibilityTester/ui.ts +80 -0
- package/src/tools.ts +2 -0
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
import type { FAQPage, HowTo, SoftwareApplication, WithContext } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { GameUiAccessibilityTesterUI } from '../ui';
|
|
4
|
+
import { bibliographyEntries } from '../bibliography';
|
|
5
|
+
|
|
6
|
+
const slug = 'game-ui-accessibility-stress-tester';
|
|
7
|
+
const title = 'ゲームUIアクセシビリティストレスチェッカー';
|
|
8
|
+
const description = 'ゲームのスクリーンショットをローカルで検査。色覚シミュレーション、HUDコントラスト測定、ぼかし、縮小、エッジヒートマップに対応。';
|
|
9
|
+
|
|
10
|
+
const faq = [
|
|
11
|
+
{
|
|
12
|
+
question: 'このツールはゲームUIのアクセシビリティを保証するものですか?',
|
|
13
|
+
answer: 'いいえ。色覚シミュレーション、コントラスト測定、視覚ストレス検証、レビューガイドを組み合わせた補助ツールです。デザインレビューやユーザーテストの参考にしてください。',
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
question: 'スクリーンショットが外部サーバーに送信されることはありますか?',
|
|
17
|
+
answer: 'いいえ。画像のデコード、サンプル抽出、変換、出力処理はすべてブラウザ内で完結します。ローカルストレージには表示設定のみが保存されます。',
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
question: '2つのカラープローブでは何を測定すべきですか?',
|
|
21
|
+
answer: '味方と敵のマーカー、アクティブと非アクティブ、体力とダメージなど、プレイヤーが識別すべき異なる意味を持つ2つの色を選択してください。',
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
question: 'コントラスト比が良好でも手動レビューが必要なのはなぜですか?',
|
|
25
|
+
answer: '小さなアイコン、細い文字、動きのある背景、色のみに依存した設計など、数値上は良好でも識別が困難なケースが存在するためです。',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: 'ヒートマップは何を表示していますか?',
|
|
29
|
+
answer: '選択したシミュレーション下で色の分離度が急激に低下する境界部分をハイライト表示します。視認性が低下しやすい箇所を特定する目安になります。',
|
|
30
|
+
},
|
|
31
|
+
];
|
|
32
|
+
|
|
33
|
+
const howTo = [
|
|
34
|
+
{ name: 'スクリーンショットを読み込む', text: 'PNG、JPEG、WebP形式のゲーム画面を選択します。画像データはブラウザのメモリ内でのみ処理されます。' },
|
|
35
|
+
{ name: 'シミュレーションレンズを選択', text: 'オリジナル画像と色覚シミュレーション、グレースケール、低コントラスト状態を比較します。' },
|
|
36
|
+
{ name: '視覚ストレスを適用', text: 'ぼかし、解像度縮小、ピクセル拡大、エッジヒートマップを適用して視認性をテストします。' },
|
|
37
|
+
{ name: '2つの重要シナーを測定', text: 'プローブAまたはBを選択し、オリジナル画像をクリックして比較する2色を抽出します。' },
|
|
38
|
+
{ name: '結果を記録・出力', text: 'チェックリストを確認してチームの観察事項を入力し、比較シート画像やJSONレポートをダウンロードします。' },
|
|
39
|
+
];
|
|
40
|
+
|
|
41
|
+
const softwareApplication: WithContext<SoftwareApplication> = {
|
|
42
|
+
'@context': 'https://schema.org',
|
|
43
|
+
'@type': 'SoftwareApplication',
|
|
44
|
+
name: title,
|
|
45
|
+
applicationCategory: 'DeveloperApplication',
|
|
46
|
+
operatingSystem: 'Any',
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
const faqPage: WithContext<FAQPage> = {
|
|
50
|
+
'@context': 'https://schema.org',
|
|
51
|
+
'@type': 'FAQPage',
|
|
52
|
+
mainEntity: faq.map((item) => ({
|
|
53
|
+
'@type': 'Question',
|
|
54
|
+
name: item.question,
|
|
55
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
56
|
+
})),
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
const howToSchema: WithContext<HowTo> = {
|
|
60
|
+
'@context': 'https://schema.org',
|
|
61
|
+
'@type': 'HowTo',
|
|
62
|
+
name: title,
|
|
63
|
+
step: howTo.map((step) => ({ '@type': 'HowToStep', name: step.name, text: step.text })),
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
export const content: ToolLocaleContent<GameUiAccessibilityTesterUI> = {
|
|
67
|
+
slug,
|
|
68
|
+
title,
|
|
69
|
+
description,
|
|
70
|
+
ui: {
|
|
71
|
+
onboarding: 'ゲームのスクリーンショットを読み込み、シミュレーションレンズを選択して、プレイヤーが判別すべき2つの重要な視覚シグナルを比較します。',
|
|
72
|
+
privacyNote: 'ローカル解析ツール。画像が送信されることはありません。',
|
|
73
|
+
dropTitle: 'ゲーム画面のスクリーンショットをドロップ',
|
|
74
|
+
dropHint: '画像をここにドロップするか、デバイスから選択してください。実際のゲームプレイ画面を使用することをお勧めします。',
|
|
75
|
+
chooseImage: '画像を選択',
|
|
76
|
+
replaceImage: '画像を差し替え',
|
|
77
|
+
supportedFiles: '16 MBまでのPNG、JPEG、WebPに対応。大きな画像は1600 pxに自動調整されます。',
|
|
78
|
+
lensLabel: 'シミュレーションレンズ',
|
|
79
|
+
lensOriginal: 'オリジナル',
|
|
80
|
+
lensProtanopia: '1型色覚 (P型)',
|
|
81
|
+
lensDeuteranopia: '2型色覚 (D型)',
|
|
82
|
+
lensTritanopia: '3型色覚 (T型)',
|
|
83
|
+
lensAchromatopsia: 'グレースケール',
|
|
84
|
+
lensReducedContrast: '低コントラスト',
|
|
85
|
+
lensDesaturation: '減色・彩度低下',
|
|
86
|
+
compareLabel: '比較モード',
|
|
87
|
+
compareSideBySide: '並べて表示',
|
|
88
|
+
compareSplit: '分割表示',
|
|
89
|
+
comparePress: '長押しで元画像',
|
|
90
|
+
holdOriginal: '長押しでオリジナル表示',
|
|
91
|
+
splitPosition: '分割位置',
|
|
92
|
+
stressLabel: '視覚ストレス設定',
|
|
93
|
+
blurLabel: 'ぼかし強度 (px)',
|
|
94
|
+
downscaleLabel: '小画面プレビュー',
|
|
95
|
+
downscaleFull: '等倍',
|
|
96
|
+
downscaleHalf: '1/2倍',
|
|
97
|
+
downscaleQuarter: '1/4倍',
|
|
98
|
+
downscaleEighth: '1/8倍',
|
|
99
|
+
zoomLabel: 'ピクセル拡大率',
|
|
100
|
+
heatmapLabel: 'エッジヒートマップ',
|
|
101
|
+
heatmapHint: 'シミュレーション下で色の識別が著しく低下する境界を表示。',
|
|
102
|
+
originalView: 'オリジナル画像',
|
|
103
|
+
simulatedView: 'シミュレーション画像',
|
|
104
|
+
emptyCanvas: 'スクリーンショットを選択して検証を開始します。データはローカルに保持されます。',
|
|
105
|
+
sampleTitle: '重要カラープローブ',
|
|
106
|
+
sampleInstructions: 'AまたはBを選択し、オリジナル画像をクリックして比較する色を抽出します。',
|
|
107
|
+
sampleA: 'プローブ A',
|
|
108
|
+
sampleB: 'プローブ B',
|
|
109
|
+
sampleAName: 'プローブAの意味',
|
|
110
|
+
sampleBName: 'プローブBの意味',
|
|
111
|
+
manualColor: 'カラーコードを直接入力',
|
|
112
|
+
sampleAInitial: '味方マーカー',
|
|
113
|
+
sampleBInitial: '敵マーカー',
|
|
114
|
+
noSample: '画像を選択してください',
|
|
115
|
+
originalContrast: '元画像コントラスト',
|
|
116
|
+
simulatedContrast: '変換後コントラスト',
|
|
117
|
+
separationRetained: '色識別維持率',
|
|
118
|
+
statusStrong: '十分な視認性を維持',
|
|
119
|
+
statusWatch: '文脈に合わせて要確認',
|
|
120
|
+
statusReview: 'デザインの再検討を推奨',
|
|
121
|
+
statusPending: '未解析',
|
|
122
|
+
measurementLabel: '測定値',
|
|
123
|
+
heuristicLabel: '指標',
|
|
124
|
+
manualReviewLabel: '手動レビュー状態',
|
|
125
|
+
measurementHint: 'WCAG相対輝度式に基づき、抽出した2色のコントラスト比を算出します。',
|
|
126
|
+
heuristicHint: 'シミュレーション前後でのRGB色空間上の距離変化を百分率で示します。',
|
|
127
|
+
promptTitle: 'UIレビューチェックポイント',
|
|
128
|
+
promptColorOnly: '色だけに頼らず、味方・敵・警告・成功・失敗を識別できますか?',
|
|
129
|
+
promptChangingBackground: '明暗や動きが激しい背景の上でもテキストは読めますか?',
|
|
130
|
+
promptMinimap: 'ミニマップのアイコンは形や模様でも区別できるようになっていますか?',
|
|
131
|
+
promptStates: '選択・不可・クールダウンなどの状態遷移が明確ですか?',
|
|
132
|
+
promptShape: 'アイコン、文字、効果音などで色の情報を補完していますか?',
|
|
133
|
+
findingLabel: 'チームでの観察メモ',
|
|
134
|
+
findingPlaceholder: '例: ダメージエフェクト発生時に敵の輪郭が見えにくくなる',
|
|
135
|
+
addFinding: 'メモを追加',
|
|
136
|
+
findingsEmpty: 'メモはまだ登録されていません。',
|
|
137
|
+
exportSheet: '比較シート画像を保存',
|
|
138
|
+
exportReport: 'JSONレポートを出力',
|
|
139
|
+
resetTool: 'リセット',
|
|
140
|
+
uploadError: '画像を読み込めませんでした。有効なPNG、JPEG、WebPを選択してください。',
|
|
141
|
+
fileTooLarge: 'ファイルサイズが16 MBを超えています。小さい画像で試してください。',
|
|
142
|
+
imageReady: '画像を読み込みました。2箇所をクリックして測定を開始してください。',
|
|
143
|
+
reportDownloaded: 'JSONレポートをダウンロードしました。',
|
|
144
|
+
sheetDownloaded: '比較シート画像をダウンロードしました。',
|
|
145
|
+
localOnlyDisclosure: '画像処理や解析はすべてブラウザ内でローカルに実行されます。',
|
|
146
|
+
limitationDisclosure: '本ツールは検証補助用です。実際のユーザーテストの代わりとなるものではありません。',
|
|
147
|
+
reportTitle: 'ゲームUIアクセシビリティレビューレポート',
|
|
148
|
+
reportFindingReview: '選択したシミュレーションにおいて、抽出した2色の視認性が大幅に低下しています。',
|
|
149
|
+
},
|
|
150
|
+
seo: [
|
|
151
|
+
{
|
|
152
|
+
type: 'title',
|
|
153
|
+
level: 2,
|
|
154
|
+
text: '画像をアップロードせずにゲームUIの色覚アクセシビリティを検証',
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
type: 'paragraph',
|
|
158
|
+
html: 'ゲーム画面は激しい動き、効果音、複雑な背景の中で情報を伝える必要があります。このローカル検証ツールを使用することで、スクリーンショットを外部に送信することなく、色覚シミュレーションや視覚ストレス下での視認性をブラウザ上で直接テストできます。',
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
type: 'title',
|
|
162
|
+
level: 2,
|
|
163
|
+
text: '数値測定・指標・人の判断が果たすそれぞれの役割',
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
type: 'table',
|
|
167
|
+
headers: ['検証項目', 'このツールが提供するもの', '単体では判定できないこと'],
|
|
168
|
+
rows: [
|
|
169
|
+
['数値測定', '抽出した2色の相対輝度とWCAGコントラスト比', 'ゲーム内のすべてのテキストや背景が基準を満たしているか'],
|
|
170
|
+
['シミュレーション', '学術論文に基づくP型・D型・T型色覚変換', '個々のプレイヤーの実際の視覚体験'],
|
|
171
|
+
['指標', 'ぼかし、解像度低下、色分離低下のヒートマップ表示', 'UI設計全体の自動良否判定'],
|
|
172
|
+
['手動レビュー', 'チェックリストと出力可能な報告レポート', '障害当事者によるユーザーテストの代替'],
|
|
173
|
+
],
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
type: 'title',
|
|
177
|
+
level: 2,
|
|
178
|
+
text: 'プレイヤーの意思決定に直結する色を測定する',
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
type: 'paragraph',
|
|
182
|
+
html: '見た目がきれいな場所ではなく、味方と敵、安全と危険、選択可能と不可など、ゲームプレイに直結する2つの色を選択して測定してください。シミュレーション下で識別が難しくなる場合は、色だけでなく形状や文字、効果音による補強を検討します。',
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
type: 'tip',
|
|
186
|
+
title: '最も視覚情報が多い場面の画像を使用する',
|
|
187
|
+
html: '静かなメニュー画面ではなく、エフェクトやアクションが激しい実際のゲームプレイ画面のスクリーンショットを使用して検証を行うことが重要です。',
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
type: 'title',
|
|
191
|
+
level: 2,
|
|
192
|
+
text: '出力されたレポートを開発チームの議論に活かす',
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
type: 'paragraph',
|
|
196
|
+
html: 'ダウンロードしたJSONレポートと比較シート画像(PNG)を課題管理ツール(JiraやGitHub Issuesなど)に添付することで、デザイナーとエンジニアが具体的な修正案を共有しやすくなります。',
|
|
197
|
+
},
|
|
198
|
+
],
|
|
199
|
+
faq,
|
|
200
|
+
howTo,
|
|
201
|
+
schemas: [softwareApplication, faqPage, howToSchema],
|
|
202
|
+
bibliography: bibliographyEntries,
|
|
203
|
+
};
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
import type { FAQPage, HowTo, SoftwareApplication, WithContext } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { GameUiAccessibilityTesterUI } from '../ui';
|
|
4
|
+
import { bibliographyEntries } from '../bibliography';
|
|
5
|
+
|
|
6
|
+
const slug = 'game-ui-accessibility-stress-tester';
|
|
7
|
+
const title = '게임 UI 접근성 스트레스 테스터';
|
|
8
|
+
const description = '게임 스크린샷을 브라우저에서 로컬로 분석하세요. 색각 이상 시뮬레이션, HUD 명암비 측정, 블러, 축소, 엣지 히트맵을 제공합니다.';
|
|
9
|
+
|
|
10
|
+
const faq = [
|
|
11
|
+
{
|
|
12
|
+
question: '이 도구가 게임 UI 접근성을 공식 인증해주나요?',
|
|
13
|
+
answer: '아니요. 색각 이상 시뮬레이션, 명암비 측정, 시각적 스트레스 테스트 및 검토 가이드를 제공하는 보조 도구입니다. 인증 목적이 아닌 디자인 개선 목적으로 활용하세요.',
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
question: '업로드한 스크린샷이 서버로 전송되나요?',
|
|
17
|
+
answer: '아니요. 이미지 디코딩, 샘플링, 변환 및 결과 출력 과정은 100% 브라우저 내부에서만 실행됩니다. 설정값만 로컬 저장소에 보관됩니다.',
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
question: '두 개의 컬러 프로브로 어떤 요소를 측정해야 하나요?',
|
|
21
|
+
answer: '아군과 적군 표시, 활성 및 비활성 상태, 체력과 피해량 등 플레이어가 구별해야 하는 두 가지 중요 요소의 색상을 선택하세요.',
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
question: '명암비가 높게 나와도 수동 검토가 필요한 이유는 무엇인가요?',
|
|
25
|
+
answer: '두 색상의 단순 명암비가 높아도 아이콘이 너무 작거나, 폰트가 얇거나, 배경이 움직이거나, 색상으로만 정보를 전달하는 경우 식별이 어려울 수 있기 때문입니다.',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: '히트맵은 무엇을 나타내나요?',
|
|
29
|
+
answer: '선택한 색각 시뮬레이션 적용 후 주변 색상과의 경계 명확도가 급격히 떨어지는 영역을 하이라이트 표시합니다.',
|
|
30
|
+
},
|
|
31
|
+
];
|
|
32
|
+
|
|
33
|
+
const howTo = [
|
|
34
|
+
{ name: '스크린샷 불러오기', text: '게임 또는 메뉴 화면의 PNG, JPEG, WebP 이미지를 선택합니다. 이미지는 브라우저 메모리에만 유지됩니다.' },
|
|
35
|
+
{ name: '시뮬레이션 렌즈 선택', text: '원본 화면과 적색맹, 녹색맹, 청색맹, 흑백, 저명암비 시뮬레이션을 비교합니다.' },
|
|
36
|
+
{ name: '시각 스트레스 적용', text: '블러 효과, 화면 축소, 피셀 확대, 엣지 히트맵을 적용하여 식별 가능성을 테스트합니다.' },
|
|
37
|
+
{ name: '두 가지 핵심 색상 측정', text: '프로브 A 또는 B를 선택한 뒤 원본 이미지를 클릭하여 비교할 색상을 추출합니다.' },
|
|
38
|
+
{ name: '결과 기록 및 내보내기', text: '체크리스트를 확인하여 팀 의견을 기록하고, 비교 이미지 및 JSON 보고서를 다운로드합니다.' },
|
|
39
|
+
];
|
|
40
|
+
|
|
41
|
+
const softwareApplication: WithContext<SoftwareApplication> = {
|
|
42
|
+
'@context': 'https://schema.org',
|
|
43
|
+
'@type': 'SoftwareApplication',
|
|
44
|
+
name: title,
|
|
45
|
+
applicationCategory: 'DeveloperApplication',
|
|
46
|
+
operatingSystem: 'Any',
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
const faqPage: WithContext<FAQPage> = {
|
|
50
|
+
'@context': 'https://schema.org',
|
|
51
|
+
'@type': 'FAQPage',
|
|
52
|
+
mainEntity: faq.map((item) => ({
|
|
53
|
+
'@type': 'Question',
|
|
54
|
+
name: item.question,
|
|
55
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
56
|
+
})),
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
const howToSchema: WithContext<HowTo> = {
|
|
60
|
+
'@context': 'https://schema.org',
|
|
61
|
+
'@type': 'HowTo',
|
|
62
|
+
name: title,
|
|
63
|
+
step: howTo.map((step) => ({ '@type': 'HowToStep', name: step.name, text: step.text })),
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
export const content: ToolLocaleContent<GameUiAccessibilityTesterUI> = {
|
|
67
|
+
slug,
|
|
68
|
+
title,
|
|
69
|
+
description,
|
|
70
|
+
ui: {
|
|
71
|
+
onboarding: '게임 스크린샷을 불러온 후 시뮬레이션 렌즈를 선택하고 플레이어가 구분해야 하는 두 가지 중요 색상 신호를 비교해보세요.',
|
|
72
|
+
privacyNote: '로컬 전용 분석 도구. 이미지가 서버로 업로드되지 않습니다.',
|
|
73
|
+
dropTitle: '게임 스크린샷 이미지를 여기에 끌어다 놓으세요',
|
|
74
|
+
dropHint: '이미지를 드래그하거나 파일 탐색기에서 선택하세요. 실제 게임 플레이 배경이 포함된 화면을 권장합니다.',
|
|
75
|
+
chooseImage: '스크린샷 선택',
|
|
76
|
+
replaceImage: '스크린샷 교체',
|
|
77
|
+
supportedFiles: '최대 16 MB의 PNG, JPEG, WebP 지원. 대형 이미지는 1600 px로 자동 조절됩니다.',
|
|
78
|
+
lensLabel: '시뮬레이션 렌즈',
|
|
79
|
+
lensOriginal: '원본',
|
|
80
|
+
lensProtanopia: '제1색각 (적색맹)',
|
|
81
|
+
lensDeuteranopia: '제2색각 (녹색맹)',
|
|
82
|
+
lensTritanopia: '제3색각 (청색맹)',
|
|
83
|
+
lensAchromatopsia: '흑백 (전색맹)',
|
|
84
|
+
lensReducedContrast: '대비 감소',
|
|
85
|
+
lensDesaturation: '채도 감소',
|
|
86
|
+
compareLabel: '비교 모드',
|
|
87
|
+
compareSideBySide: '나란히 보기',
|
|
88
|
+
compareSplit: '분할 보기',
|
|
89
|
+
comparePress: '누르고 있어 원본 보기',
|
|
90
|
+
holdOriginal: '누르고 있으면 원본 표시',
|
|
91
|
+
splitPosition: '분할 위치',
|
|
92
|
+
stressLabel: '시각 스트레스 설정',
|
|
93
|
+
blurLabel: '블러 (px)',
|
|
94
|
+
downscaleLabel: '작은 화면 미리보기',
|
|
95
|
+
downscaleFull: '원본 크기',
|
|
96
|
+
downscaleHalf: '1/2 크기',
|
|
97
|
+
downscaleQuarter: '1/4 크기',
|
|
98
|
+
downscaleEighth: '1/8 크기',
|
|
99
|
+
zoomLabel: '픽셀 확대 비율',
|
|
100
|
+
heatmapLabel: '엣지 히트맵',
|
|
101
|
+
heatmapHint: '시뮬레이션 환경에서 식별력이 급격히 떨어지는 경계면을 표시합니다.',
|
|
102
|
+
originalView: '원본 화면',
|
|
103
|
+
simulatedView: '시뮬레이션 화면',
|
|
104
|
+
emptyCanvas: '스크린샷을 선택하여 분석을 시작하세요. 이미지는 단말기 내에만 보관됩니다.',
|
|
105
|
+
sampleTitle: '핵심 색상 프로브',
|
|
106
|
+
sampleInstructions: 'A 또는 B를 선택한 후 원본 이미지를 클릭하여 측정할 색상을 추출하세요.',
|
|
107
|
+
sampleA: '프로브 A',
|
|
108
|
+
sampleB: '프로브 B',
|
|
109
|
+
sampleAName: '프로브 A의 의미',
|
|
110
|
+
sampleBName: '프로브 B의 의미',
|
|
111
|
+
manualColor: '색상 코드 직접 입력',
|
|
112
|
+
sampleAInitial: '아군 표시',
|
|
113
|
+
sampleBInitial: '적군 표시',
|
|
114
|
+
noSample: '이미지 대기 중',
|
|
115
|
+
originalContrast: '원본 명암비',
|
|
116
|
+
simulatedContrast: '변환 후 명암비',
|
|
117
|
+
separationRetained: '색상 식별 유지율',
|
|
118
|
+
statusStrong: '충분한 식별성 유지',
|
|
119
|
+
statusWatch: '게임 맥락 확인 필요',
|
|
120
|
+
statusReview: '디자인 개선 권장',
|
|
121
|
+
statusPending: '분석 전',
|
|
122
|
+
measurementLabel: '측정치',
|
|
123
|
+
heuristicLabel: '휴리스틱',
|
|
124
|
+
manualReviewLabel: '수동 검토 상태',
|
|
125
|
+
measurementHint: 'WCAG 상대 휘도 공식을 사용하여 추출한 두 색상의 명암비를 계산합니다.',
|
|
126
|
+
heuristicHint: '시뮬레이션 전후의 RGB 색상 거리 변화율을 보여줍니다.',
|
|
127
|
+
promptTitle: 'UI 디자인 검토 체크리스트',
|
|
128
|
+
promptColorOnly: '색상 외에도 모양이나 텍스트로 적/아군 및 상태 구분이 가능한가요?',
|
|
129
|
+
promptChangingBackground: '밝거나 움직임이 많은 배경 위에서도 텍스트가 잘 보이나요?',
|
|
130
|
+
promptMinimap: '미니맵 아이콘이 색상뿐만 아니라 형태나 패턴으로 구분되나요?',
|
|
131
|
+
promptStates: '선택, 비활성화, 쿨다운 상태가 명확하게 구별되나요?',
|
|
132
|
+
promptShape: '아이콘, 위치, 효과음 등으로 색상 정보를 보완하고 있나요?',
|
|
133
|
+
findingLabel: '팀 검토 메모',
|
|
134
|
+
findingPlaceholder: '예: 피해 효과 발생 시 적 테두리가 묻히는 현상 발생',
|
|
135
|
+
addFinding: '메모 추가',
|
|
136
|
+
findingsEmpty: '등록된 검토 메모가 없습니다.',
|
|
137
|
+
exportSheet: '비교 이미지 다운로드',
|
|
138
|
+
exportReport: 'JSON 보고서 다운로드',
|
|
139
|
+
resetTool: '초기화',
|
|
140
|
+
uploadError: '이미지를 읽을 수 없습니다. 올바른 PNG, JPEG, WebP 파일을 선택하세요.',
|
|
141
|
+
fileTooLarge: '파일 크기가 16 MB를 초과합니다. 더 작은 이미지를 사용하세요.',
|
|
142
|
+
imageReady: '이미지가 로드되었습니다. 두 지점을 클릭하여 측정을 시작하세요.',
|
|
143
|
+
reportDownloaded: 'JSON 보고서가 다운로드되었습니다.',
|
|
144
|
+
sheetDownloaded: '비교 이미지가 다운로드되었습니다.',
|
|
145
|
+
localOnlyDisclosure: '모든 이미지 처리 및 시뮬레이션은 브라우저 내에서만 실행됩니다.',
|
|
146
|
+
limitationDisclosure: '본 도구는 디자인 검토 보조용이며 실제 사용자 테스트를 대체하지 않습니다.',
|
|
147
|
+
reportTitle: '게임 UI 접근성 검토 보고서',
|
|
148
|
+
reportFindingReview: '선택한 시뮬레이션에서 추출한 색상의 식별성이 크게 저하되었습니다.',
|
|
149
|
+
},
|
|
150
|
+
seo: [
|
|
151
|
+
{
|
|
152
|
+
type: 'title',
|
|
153
|
+
level: 2,
|
|
154
|
+
text: '이미지 업로드 없이 게임 UI 색각 접근성 검서하기',
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
type: 'paragraph',
|
|
158
|
+
html: '게임 인터페이스는 화려한 이펙트, 움직이는 카메라, 다양한 배경 속에서도 명확한 정보를 전달해야 합니다. 이 로컬 검사 도구를 활용하면 스크린샷을 외부에 업로드하지 않고 브라우저에서 직접 다양한 색각 이상 시뮬레이션을 적용해볼 수 있습니다.',
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
type: 'title',
|
|
162
|
+
level: 2,
|
|
163
|
+
text: '수치 측정, 휴리스틱 지표, 수동 검토의 역할',
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
type: 'table',
|
|
167
|
+
headers: ['검증 항목', '도구가 제공하는 정보', '도구만으로 판단할 수 없는 요소'],
|
|
168
|
+
rows: [
|
|
169
|
+
['수치 측정', '추출한 두 색상의 상대 휘도 및 WCAG 명암비', '게임 내 모든 요소의 접근성 표준 준수 여부'],
|
|
170
|
+
['시뮬레이션', '적색맹, 녹색맹, 청색맹 학술 알고리즘 변환', '개별 플레이어가 실제로 느끼는 주관적 시각 경험'],
|
|
171
|
+
['휴리스틱', '블러, 해상도 축소, 색상 경계 둔화 히트맵 표시', 'UI 종합 디자인 우수성에 대한 자동 판정'],
|
|
172
|
+
['수동 검토', '체크리스트 가이드 및 공유 가능한 보고서 출력', '실제 장애인 플레이어 대상 사용자 테스트 대체'],
|
|
173
|
+
],
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
type: 'title',
|
|
177
|
+
level: 2,
|
|
178
|
+
text: '플레이어의 판단에 직접 영향을 주는 색상 측정하기',
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
type: 'paragraph',
|
|
182
|
+
html: '단순히 예쁜 요소가 아니라 적과 아군, 안전과 위험, 사용 가능과 불가능처럼 플레이어의 행동을 결정짓는 핵심 색상 쌍을 측정해야 합니다. 시뮬레이션에서 구분이 어려워진다면 색상 외에 형태나 아이콘, 사운드를 추가하는 것이 좋습니다.',
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
type: 'tip',
|
|
186
|
+
title: '복잡한 전투 및 플레이 화면을 활용하세요',
|
|
187
|
+
html: '깨끗한 정적 메뉴 화면보다는 이펙트와 전투가 활발한 실제 게임 플레이 스크린샷을 사용하는 것이 훨씬 실질적인 검토 결과를 제공합니다.',
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
type: 'title',
|
|
191
|
+
level: 2,
|
|
192
|
+
text: '내보낸 보고서를 팀 협업에 활용하는 방법',
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
type: 'paragraph',
|
|
196
|
+
html: '다운로드한 JSON 보고서와 비교 이미지(PNG)를 이슈 트래커(Jira, GitHub Issues 등)에 첨부하면 디자이너와 개발자가 구체적인 개선 방향을 쉽게 논의할 수 있습니다.',
|
|
197
|
+
},
|
|
198
|
+
],
|
|
199
|
+
faq,
|
|
200
|
+
howTo,
|
|
201
|
+
schemas: [softwareApplication, faqPage, howToSchema],
|
|
202
|
+
bibliography: bibliographyEntries,
|
|
203
|
+
};
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
import type { FAQPage, HowTo, SoftwareApplication, WithContext } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { GameUiAccessibilityTesterUI } from '../ui';
|
|
4
|
+
import { bibliographyEntries } from '../bibliography';
|
|
5
|
+
|
|
6
|
+
const slug = 'game-ui-toegankelijkheid-stresstester';
|
|
7
|
+
const title = 'Game UI Toegankelijkheid Stresstester';
|
|
8
|
+
const description = 'Inspecteer game-screenshots lokaal met kleurensimulaties, HUD-contrastmetingen, vervaging, schaalverkleining en randen-heatmaps.';
|
|
9
|
+
|
|
10
|
+
const faq = [
|
|
11
|
+
{
|
|
12
|
+
question: 'Certificeert deze tool de toegankelijkheid van mijn game-UI?',
|
|
13
|
+
answer: 'Nee. Het combineert kleurvisiesimulaties, contrastmetingen en controle-vragen. Gebruik de resultaten als leidraad voor designreviews, niet als officieel certificaat.',
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
question: 'Verlaat mijn screenshot de browser?',
|
|
17
|
+
answer: 'Nee. De afbeelding wordt volledig in uw eigen browser verwerkt. Alleen uw weergave-instellingen worden lokaal opgeslagen.',
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
question: 'Wat moet ik meten met de twee kleursondes?',
|
|
21
|
+
answer: 'Kies twee kleuren met een verschillende betekenis, zoals bondgenoot en vijand, actief en inactief, of twee zeldzaamheidsniveaus.',
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
question: 'Waarom is handmatige controle nodig bij een goede contrastverhouding?',
|
|
25
|
+
answer: 'Een paar kan een goede verhouding hebben, maar een klein pictogram, dunne tekst of een bewegende achtergrond kan alsnog moeilijk leesbaar zijn.',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: 'Wat toont de heatmap?',
|
|
29
|
+
answer: 'De heatmap licht gebieden uit waar het kleurverschil sterk afneemt na de gekozen simulatie.',
|
|
30
|
+
},
|
|
31
|
+
];
|
|
32
|
+
|
|
33
|
+
const howTo = [
|
|
34
|
+
{ name: 'Screenshot laden', text: 'Selecteer een PNG, JPEG of WebP-afbeelding van uw game. De afbeelding blijft in het geheugen van uw browser.' },
|
|
35
|
+
{ name: 'Simulatielens kiezen', text: 'Vergelijk het origineel met simulaties voor kleurenblindheid, grijstinten of verminderd contrast.' },
|
|
36
|
+
{ name: 'Visuele stress toepassen', text: 'Voeg vervaging toe, verklein de weergave, zoom in op pixels of schakel de randen-heatmap in.' },
|
|
37
|
+
{ name: 'Twee signalen meten', text: 'Selecteer sonde A of B en klik op de originele afbeelding om twee kleuren te vergelijken.' },
|
|
38
|
+
{ name: 'Bevindingen exporteren', text: 'Bekijk de controle-vragen, voeg opmerkingen toe en download een vergelijkingsafbeelding en JSON-rapport.' },
|
|
39
|
+
];
|
|
40
|
+
|
|
41
|
+
const softwareApplication: WithContext<SoftwareApplication> = {
|
|
42
|
+
'@context': 'https://schema.org',
|
|
43
|
+
'@type': 'SoftwareApplication',
|
|
44
|
+
name: title,
|
|
45
|
+
applicationCategory: 'DeveloperApplication',
|
|
46
|
+
operatingSystem: 'Any',
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
const faqPage: WithContext<FAQPage> = {
|
|
50
|
+
'@context': 'https://schema.org',
|
|
51
|
+
'@type': 'FAQPage',
|
|
52
|
+
mainEntity: faq.map((item) => ({
|
|
53
|
+
'@type': 'Question',
|
|
54
|
+
name: item.question,
|
|
55
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
56
|
+
})),
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
const howToSchema: WithContext<HowTo> = {
|
|
60
|
+
'@context': 'https://schema.org',
|
|
61
|
+
'@type': 'HowTo',
|
|
62
|
+
name: title,
|
|
63
|
+
step: howTo.map((step) => ({ '@type': 'HowToStep', name: step.name, text: step.text })),
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
export const content: ToolLocaleContent<GameUiAccessibilityTesterUI> = {
|
|
67
|
+
slug,
|
|
68
|
+
title,
|
|
69
|
+
description,
|
|
70
|
+
ui: {
|
|
71
|
+
onboarding: 'Laad een game-screenshot, kies een simulatielens en vergelijk twee visuele signalen die spelers duidelijk moeten kunnen onderscheiden.',
|
|
72
|
+
privacyNote: 'Lokale analyse. Screenshots worden niet geüpload.',
|
|
73
|
+
dropTitle: 'Plaats een game-screenshot op de werkbank',
|
|
74
|
+
dropHint: 'Sleep hier een afbeelding naartoe of kies een bestand vanaf uw apparaat. Gebruik een representatief spelmoment.',
|
|
75
|
+
chooseImage: 'Screenshot kiezen',
|
|
76
|
+
replaceImage: 'Screenshot vervangen',
|
|
77
|
+
supportedFiles: 'PNG, JPEG of WebP tot 16 MB. Grote afbeeldingen worden op schaal aangepast.',
|
|
78
|
+
lensLabel: 'Simulatielens',
|
|
79
|
+
lensOriginal: 'Origineel',
|
|
80
|
+
lensProtanopia: 'Protanopie',
|
|
81
|
+
lensDeuteranopia: 'Deuteranopie',
|
|
82
|
+
lensTritanopia: 'Tritanopie',
|
|
83
|
+
lensAchromatopsia: 'Grijstinten',
|
|
84
|
+
lensReducedContrast: 'Verminderd contrast',
|
|
85
|
+
lensDesaturation: 'Desaturatie',
|
|
86
|
+
compareLabel: 'Vergelijkingsmodus',
|
|
87
|
+
compareSideBySide: 'Naast elkaar',
|
|
88
|
+
compareSplit: 'Gesplitste lens',
|
|
89
|
+
comparePress: 'Ingedrukt houden voor origineel',
|
|
90
|
+
holdOriginal: 'Vasthouden voor origineel',
|
|
91
|
+
splitPosition: 'Lenspositie',
|
|
92
|
+
stressLabel: 'Signaalstresstests',
|
|
93
|
+
blurLabel: 'Vervaging in pixels',
|
|
94
|
+
downscaleLabel: 'Klein scherm weergave',
|
|
95
|
+
downscaleFull: 'Volledig',
|
|
96
|
+
downscaleHalf: 'Helft',
|
|
97
|
+
downscaleQuarter: 'Kwart',
|
|
98
|
+
downscaleEighth: 'Achtste',
|
|
99
|
+
zoomLabel: 'Inspectiezoom',
|
|
100
|
+
heatmapLabel: 'Randen-heatmap',
|
|
101
|
+
heatmapHint: 'Licht gebieden uit waar kleurverschil sterk afneemt onder de lens.',
|
|
102
|
+
originalView: 'Origineel signaal',
|
|
103
|
+
simulatedView: 'Gestimuleerd signaal',
|
|
104
|
+
emptyCanvas: 'Selecteer een screenshot om te beginnen. Uw bestand blijft op dit apparaat.',
|
|
105
|
+
sampleTitle: 'Signaalsondes',
|
|
106
|
+
sampleInstructions: 'Selecteer A of B en klik op het origineel om kleursamples te nemen.',
|
|
107
|
+
sampleA: 'Sonde A',
|
|
108
|
+
sampleB: 'Sonde B',
|
|
109
|
+
sampleAName: 'Betekenis sonde A',
|
|
110
|
+
sampleBName: 'Betekenis sonde B',
|
|
111
|
+
manualColor: 'Kleur direct instellen',
|
|
112
|
+
sampleAInitial: 'Bondgenoot',
|
|
113
|
+
sampleBInitial: 'Vijand',
|
|
114
|
+
noSample: 'Wachten op screenshot',
|
|
115
|
+
originalContrast: 'Origineel contrast',
|
|
116
|
+
simulatedContrast: 'Gestimuleerd contrast',
|
|
117
|
+
separationRetained: 'Behouden onderscheid',
|
|
118
|
+
statusStrong: 'Signaal duidelijk te onderscheiden',
|
|
119
|
+
statusWatch: 'Controleer in spelcontext',
|
|
120
|
+
statusReview: 'Signaalontwerp herzien',
|
|
121
|
+
statusPending: 'Nog geen analyse',
|
|
122
|
+
measurementLabel: 'Meting',
|
|
123
|
+
heuristicLabel: 'Heuristiek',
|
|
124
|
+
manualReviewLabel: 'Handmatige controle',
|
|
125
|
+
measurementHint: 'Berekent de relatieve luminantie-contrastverhouding volgens WCAG voor de kleursamples.',
|
|
126
|
+
heuristicHint: 'Vergelijkt het kleurverschil voor en na de visuele simulatie.',
|
|
127
|
+
promptTitle: 'Controle-vragen voor UI-design',
|
|
128
|
+
promptColorOnly: 'Kunnen spelers elementen herkennen zonder alleen op kleur te vertrouwen?',
|
|
129
|
+
promptChangingBackground: 'Blijft tekst leesbaar op drukke, lichte of donkere achtergronden?',
|
|
130
|
+
promptMinimap: 'Onderscheiden minimap-pictogrammen zich ook door vorm of patroon?',
|
|
131
|
+
promptStates: 'Zijn actieve, inactieve en herlaad-statussen duidelijk?',
|
|
132
|
+
promptShape: 'Versterkt een pictogram of geluid elk kleursignaal?',
|
|
133
|
+
findingLabel: 'Opmerking van het team',
|
|
134
|
+
findingPlaceholder: 'Bijvoorbeeld: Omtrek van vijand vervaagt bij rood effect',
|
|
135
|
+
addFinding: 'Opmerking toevoegen',
|
|
136
|
+
findingsEmpty: 'Nog geen schriftelijke opmerkingen.',
|
|
137
|
+
exportSheet: 'Vergelijkingsafbeelding downloaden',
|
|
138
|
+
exportReport: 'JSON-rapport downloaden',
|
|
139
|
+
resetTool: 'Sessie wissen',
|
|
140
|
+
uploadError: 'Kan bestand niet lezen. Kies een geldige PNG, JPEG of WebP.',
|
|
141
|
+
fileTooLarge: 'Bestand groter dan 16 MB. Kies een kleiner bestand.',
|
|
142
|
+
imageReady: 'Screenshot geladen. Selecteer twee kleursondes om te starten.',
|
|
143
|
+
reportDownloaded: 'JSON-rapport gedownload.',
|
|
144
|
+
sheetDownloaded: 'Vergelijkingsafbeelding gedownload.',
|
|
145
|
+
localOnlyDisclosure: 'Lokale verwerking in uw browser. Geen data-overdracht.',
|
|
146
|
+
limitationDisclosure: 'Ondersteunt designreviews maar vervangt geen gebruikers-tests.',
|
|
147
|
+
reportTitle: 'Controlerapport Game UI Toegankelijkheid',
|
|
148
|
+
reportFindingReview: 'Het gemeten kleurpaar verliest aanzienlijk contrast onder de simulatie.',
|
|
149
|
+
},
|
|
150
|
+
seo: [
|
|
151
|
+
{
|
|
152
|
+
type: 'title',
|
|
153
|
+
level: 2,
|
|
154
|
+
text: 'Game-UI toegankelijkheid testen zonder afbeeldingen te uploaden',
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
type: 'paragraph',
|
|
158
|
+
html: 'Game-interfaces moeten goed te lezen zijn onder dynamische omstandigheden. Met deze lokale tester kunt u screenshots direct in uw browser inspecteren via kleurblindheidssimulaties en visuele stresstests.',
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
type: 'title',
|
|
162
|
+
level: 2,
|
|
163
|
+
text: 'Metingen, heuristieken en menselijke controle',
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
type: 'table',
|
|
167
|
+
headers: ['Type bewijs', 'Wat deze tool biedt', 'Wat het niet kan concluderen'],
|
|
168
|
+
rows: [
|
|
169
|
+
['Meting', 'Relatieve luminantie en WCAG-contrastverhouding voor twee kleuren', 'Volledige automatische naleving van de hele game'],
|
|
170
|
+
['Simulatie', 'Wetenschappelijke transformaties voor protanopie, deuteranopie en tritanopie', 'De exacte visuele ervaring van elke individuele speler'],
|
|
171
|
+
['Heuristiek', 'Vervaging, schaalverkleining en randverlies-detectie', 'Automatische beoordeling van de UI-kwaliteit'],
|
|
172
|
+
['Handmatige controle', 'Checklist met vragen en exporteerbare rapporten', 'Vervanging van testen met echte gebruikers'],
|
|
173
|
+
],
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
type: 'title',
|
|
177
|
+
level: 2,
|
|
178
|
+
text: 'Meet kleuren die beslissingen van spelers beïnvloeden',
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
type: 'paragraph',
|
|
182
|
+
html: 'Richt uw metingen op kleurparen die belangrijk zijn voor de speler, zoals vijand en bondgenoot. Voeg vormen of pictogrammen toe als het contrast afneemt onder simulatie.',
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
type: 'tip',
|
|
186
|
+
title: 'Test drukke spelsituaties',
|
|
187
|
+
html: 'Gebruik screenshots van actievolle spelmomenten voor een realistisch testresultaat.',
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
type: 'title',
|
|
191
|
+
level: 2,
|
|
192
|
+
text: 'Gebruik het rapport voor teamoverleg',
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
type: 'paragraph',
|
|
196
|
+
html: 'Het JSON-rapport en de PNG-afbeelding kunnen direct aan uw taken worden toegevoegd om designverbeteringen te bespreken.',
|
|
197
|
+
},
|
|
198
|
+
],
|
|
199
|
+
faq,
|
|
200
|
+
howTo,
|
|
201
|
+
schemas: [softwareApplication, faqPage, howToSchema],
|
|
202
|
+
bibliography: bibliographyEntries,
|
|
203
|
+
};
|