ensureSemantics method
Creates a new SemanticsHandle and requests the collection of semantics information.
Semantics information are only collected when there are clients interested in them. These clients express their interest by holding a SemanticsHandle.
Clients can close their SemanticsHandle by calling SemanticsHandle.dispose. Once all outstanding SemanticsHandle objects are closed, semantics information are no longer collected.
Implementation
SemanticsHandle ensureSemantics() {
  assert(_outstandingHandles >= 0);
  _outstandingHandles++;
  assert(_outstandingHandles > 0);
  _semanticsEnabled.value = true;
  return SemanticsHandle._(_didDisposeSemanticsHandle);
}