Skip to content

Exception when forcing semantics #362

@estefaniaregalado

Description

@estefaniaregalado

I need to test the semantic tree generated for accessibility. I added SemanticsBinding.instance.ensureSemantics(); after the runApp(MyApp()); in the main.dart file, in the example application, to force the semantics tree generation. When switching to the AsyncPaginatedDataTable2, I got the following exception. The same error also happens when navigating to the next page.

The following assertion was thrown during a scheduler callback:
Assertion failed: "Child #358 is missing in the tree."

When the exception was thrown, this was the stack:
dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/errors.dart 307:3     throw_
errors.dart:307
dart-sdk/lib/_internal/js_dev_runtime/private/profile.dart 117:39               <fn>
profile.dart:117
dart-sdk/lib/_internal/js_dev_runtime/private/linked_hash_map.dart 21:7         forEach
linked_hash_map.dart:21
lib/_engine/engine/semantics/semantics.dart 2630:7                              <fn>
semantics.dart:2630
lib/_engine/engine/window.dart 110:5                                            updateSemantics
window.dart:110
packages/flutter/src/rendering/view.dart 386:5                                  updateSemantics
view.dart:386
packages/flutter/src/rendering/binding.dart 255:48                              <fn>
binding.dart:255
packages/flutter/src/semantics/semantics.dart 3785:22                           sendSemanticsUpdate
semantics.dart:3785
packages/flutter/src/rendering/object.dart 1381:7                               flushSemantics
object.dart:1381
packages/flutter/src/rendering/object.dart 1383:14                              flushSemantics
object.dart:1383
packages/flutter/src/rendering/binding.dart 623:7                               drawFrame
binding.dart:623
packages/flutter/src/widgets/binding.dart 1231:13                               drawFrame
binding.dart:1231
packages/flutter/src/rendering/binding.dart 482:5                               [_handlePersistentFrameCallback]
binding.dart:482
packages/flutter/src/scheduler/binding.dart 1442:7                              [_invokeFrameCallback]
binding.dart:1442
packages/flutter/src/scheduler/binding.dart 1355:9                              handleDrawFrame
binding.dart:1355
packages/flutter/src/scheduler/binding.dart 1208:5                              [_handleDrawFrame]
binding.dart:1208
lib/_engine/engine/platform_dispatcher.dart 1347:5                              invoke
platform_dispatcher.dart:1347
lib/_engine/engine/platform_dispatcher.dart 301:5                               invokeOnDrawFrame
platform_dispatcher.dart:301
lib/_engine/engine/initialization.dart 190:36                                   <fn>
initialization.dart:190
dart-sdk/lib/_internal/js_dev_runtime/patch/js_allow_interop_patch.dart 224:27  _callDartFunctionFast1
js_allow_interop_patch.dart:224
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by scheduler library ═════════════════════════════════
Assertion failed: "Child #358 is missing in the tree."
════════════════════════════════════════════════════════════════════════════════
void main() {
  runApp(MyApp());
  WidgetsBinding.instance.addPostFrameCallback((_) {
    SemanticsBinding.instance.ensureSemantics();
  });
  // Add import
  // import 'package:data_table_2/data_table_2.dart';
  // and uncomment below line to remove widgets' logs
  //dataTableShowLogs = false;
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions