Adobe 38039481 User Guide - Page 370

Use ActionScript to create a tab order for accessible objects

Page 370 highlights

FLASH CS3 364 User Guide For example, you could use the Accessibility.isActive() method to decide whether to include unsolicited animation. Unsolicited animation happens without the screen reader doing anything, which can be confusing for screen readers. The Accessibility.isActive() method provides asynchronous communication between the Flash content and Flash Player; a slight real-time delay can occur between the time the method is called and the time when Flash Player becomes active, returning an incorrect value of false. To ensure that the method is called correctly, do one of the following: • Instead of using the Accessibility.isActive() method when the Flash content first plays, call the method whenever you need to make a decision about accessibility. • Introduce a short delay of one or two seconds at the beginning of your document to give the Flash content enough time to contact Flash Player. For example, you can use an onFocus event to attach this method to a button. This approach generally gives the SWF file enough time to load and you can assume a screen reader user will tab to the first button or object on the Stage. Use ActionScript to create a tab order for accessible objects To create the tab order with ActionScript code, assign the tabIndex property to the following objects: • Dynamic text • Input text • Buttons • Movie clips, including compiled movie clips • Timeline frames • Screens Provide a complete tab order for all accessible objects. If you create a tab order for a frame and you don't specify a tab order for an accessible object in the frame, Flash Player ignores all the custom tab-order assignments. Additionally, all objects assigned to a tab order, except frames, must have an instance name specified in the Instance Name text field of the Property inspector. Even items that are not tab stops, such as text, need to be included in the tab order if they are to be read in that order. Because static text cannot be assigned an instance name, it cannot be included in the list of the tabIndex property values. As a result, a single instance of static text anywhere in the SWF file causes the reading order to revert to the default. To specify a tab order, assign an order number to the tabIndex property, as the following example shows: _this.myOption1.btn.tabIndex = 1 _this.myOption2.txt.tabIndex = 2 See tabIndex in Button, MovieClip, and TextField in the ActionScript 2.0 Language Reference. You can also use the tabChildren() or tabEnabled() methods to assign custom tab order. See MovieClip.tabChildren, MovieClip.tabEnabled, and TextField.tabEnabled in the ActionScript 2.0 Language Reference. See also "Create a tab-order index for keyboard navigation in the Accessibility panel" on page 359

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • 188
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
  • 195
  • 196
  • 197
  • 198
  • 199
  • 200
  • 201
  • 202
  • 203
  • 204
  • 205
  • 206
  • 207
  • 208
  • 209
  • 210
  • 211
  • 212
  • 213
  • 214
  • 215
  • 216
  • 217
  • 218
  • 219
  • 220
  • 221
  • 222
  • 223
  • 224
  • 225
  • 226
  • 227
  • 228
  • 229
  • 230
  • 231
  • 232
  • 233
  • 234
  • 235
  • 236
  • 237
  • 238
  • 239
  • 240
  • 241
  • 242
  • 243
  • 244
  • 245
  • 246
  • 247
  • 248
  • 249
  • 250
  • 251
  • 252
  • 253
  • 254
  • 255
  • 256
  • 257
  • 258
  • 259
  • 260
  • 261
  • 262
  • 263
  • 264
  • 265
  • 266
  • 267
  • 268
  • 269
  • 270
  • 271
  • 272
  • 273
  • 274
  • 275
  • 276
  • 277
  • 278
  • 279
  • 280
  • 281
  • 282
  • 283
  • 284
  • 285
  • 286
  • 287
  • 288
  • 289
  • 290
  • 291
  • 292
  • 293
  • 294
  • 295
  • 296
  • 297
  • 298
  • 299
  • 300
  • 301
  • 302
  • 303
  • 304
  • 305
  • 306
  • 307
  • 308
  • 309
  • 310
  • 311
  • 312
  • 313
  • 314
  • 315
  • 316
  • 317
  • 318
  • 319
  • 320
  • 321
  • 322
  • 323
  • 324
  • 325
  • 326
  • 327
  • 328
  • 329
  • 330
  • 331
  • 332
  • 333
  • 334
  • 335
  • 336
  • 337
  • 338
  • 339
  • 340
  • 341
  • 342
  • 343
  • 344
  • 345
  • 346
  • 347
  • 348
  • 349
  • 350
  • 351
  • 352
  • 353
  • 354
  • 355
  • 356
  • 357
  • 358
  • 359
  • 360
  • 361
  • 362
  • 363
  • 364
  • 365
  • 366
  • 367
  • 368
  • 369
  • 370
  • 371
  • 372
  • 373
  • 374
  • 375
  • 376
  • 377
  • 378
  • 379
  • 380
  • 381
  • 382
  • 383
  • 384
  • 385
  • 386
  • 387
  • 388
  • 389
  • 390
  • 391
  • 392
  • 393
  • 394
  • 395
  • 396
  • 397
  • 398
  • 399
  • 400
  • 401
  • 402
  • 403
  • 404
  • 405
  • 406
  • 407
  • 408
  • 409
  • 410
  • 411
  • 412
  • 413
  • 414
  • 415
  • 416
  • 417
  • 418
  • 419
  • 420
  • 421
  • 422
  • 423
  • 424
  • 425
  • 426
  • 427
  • 428
  • 429
  • 430
  • 431
  • 432
  • 433
  • 434
  • 435
  • 436
  • 437
  • 438
  • 439
  • 440
  • 441
  • 442
  • 443
  • 444
  • 445
  • 446
  • 447
  • 448
  • 449
  • 450
  • 451
  • 452
  • 453
  • 454
  • 455
  • 456
  • 457
  • 458
  • 459
  • 460
  • 461
  • 462
  • 463
  • 464
  • 465
  • 466
  • 467
  • 468
  • 469
  • 470
  • 471
  • 472
  • 473
  • 474
  • 475
  • 476
  • 477
  • 478
  • 479
  • 480
  • 481
  • 482
  • 483
  • 484
  • 485
  • 486
  • 487
  • 488
  • 489
  • 490
  • 491
  • 492
  • 493
  • 494
  • 495
  • 496
  • 497
  • 498
  • 499
  • 500
  • 501
  • 502
  • 503
  • 504
  • 505
  • 506
  • 507
  • 508
  • 509
  • 510
  • 511
  • 512
  • 513
  • 514
  • 515
  • 516
  • 517
  • 518
  • 519
  • 520
  • 521
  • 522
  • 523
  • 524
  • 525
  • 526

FLASH CS3
User Guide
364
For example, you could use the
Accessibility.isActive()
method to decide whether to include unsolicited
animation. Unsolicited animation happens without the screen reader doing anything, which can be confusing for
screen readers.
The
Accessibility.isActive()
method provides asynchronous communication between the Flash content and
Flash Player; a slight real-time delay can occur between the time the method is called and the time when Flash Player
becomes active, returning an incorrect value of
false
. To ensure that the method is called correctly, do one of the
following:
Instead of using the
Accessibility.isActive()
method when the Flash content first plays, call the method
whenever you need to make a decision about accessibility.
Introduce a short delay of one or two seconds at the beginning of your document to give the Flash content enough
time to contact Flash Player.
For example, you can use an
onFocus
event to attach this method to a button. This approach generally gives the SWF
file enough time to load and you can assume a screen reader user will tab to the first button or object on the Stage.
Use ActionScript to create a tab order for accessible objects
To create the tab order with ActionScript code, assign the
tabIndex
property to the following objects:
Dynamic text
Input text
Buttons
Movie clips, including compiled movie clips
Timeline frames
Screens
Provide a complete tab order for all accessible objects. If you create a tab order for a frame and you don’t specify a
tab order for an accessible object in the frame, Flash Player ignores all the custom tab-order assignments.
Additionally, all objects assigned to a tab order, except frames, must have an instance name specified in the Instance
Name text field of the Property inspector. Even items that are not tab stops, such as text, need to be included in the
tab order if they are to be read in that order.
Because static text cannot be assigned an instance name, it cannot be included in the list of the
tabIndex
property
values. As a result, a single instance of static text anywhere in the SWF file causes the reading order to revert to the
default.
To specify a tab order, assign an order number to the
tabIndex
property, as the following example shows:
_this.myOption1.btn.tabIndex = 1
_this.myOption2.txt.tabIndex = 2
See
tabIndex
in
Button
,
MovieClip
, and
TextField
in the
ActionScript 2.0 Language Reference.
You can also use the
tabChildren()
or
tabEnabled()
methods to assign custom tab order. See
MovieClip.tabChildren
,
MovieClip.tabEnabled
, and
TextField.tabEnabled
in the
ActionScript 2.0
Language Reference.
See also
“Create a tab-order index for keyboard navigation in the Accessibility panel” on page
359