Repository: flutter
Issue: Spell check underline doesn't take effect until typing begins
Labels: a: text input,framework,has reproducible steps,P2,found in release: 3.10,team-framework,triaged-framework,found in release: 3.13

### Is there an existing issue for this?

- [X] I have searched the [existing issues](https://github.com/flutter/flutter/issues)
- [X] I have read the [guide to filing a bug](https://flutter.dev/docs/resources/bug-reports)

### Steps to reproduce

  1. Run an app with a TextField with some text in it and spell check enabled (see sample below).
  2. Focus the TextField.

### Expected results

Misspelled words are underlined.

### Actual results

Nothing is underlined unless the user starts typing.

### Code sample

<details><summary>Code sample</summary>

```dart
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatelessWidget {
  MyHomePage({super.key});

  final TextEditingController controller = TextEditingController(text: 'To be or not to be, that is the question.');

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('SpellCheckService Bug')),
      body: Padding(
        padding: const EdgeInsets.all(16),
        child: Column(
          children: [
            TextField(
              controller: controller,
              spellCheckConfiguration: SpellCheckConfiguration(
                spellCheckService: EverythingWrongSpellCheckService(),
              ),
            ),
          ],
        ),
      ),
    );
  }
}

// SpellCheckService that always marks every word as misspelled.
class EverythingWrongSpellCheckService extends SpellCheckService {
  @override
  Future<List<SuggestionSpan>?> fetchSpellCheckSuggestions(Locale locale, String text) async {
    final matches = RegExp(r'\b\w+').allMatches(text);
    return matches
        .map((match) => SuggestionSpan(
              TextRange(start: match.start, end: match.end),
              const [],
            ))
        .toList();
  }
}
```

</details>


### Screenshots or Video
![Screenshot from 2023-08-09 15-51-38](https://github.com/flutter/flutter/assets/389558/db3f8f3e-5376-49dc-8d58-4e73800290cd)

### Flutter Doctor output

<details><summary>Doctor output</summary>

```console
Doctor summary (to see all details, run flutter doctor -v):
[!] Flutter (Channel master, 3.13.0-19.0.pre.111, on Debian GNU/Linux rodete 6.3.7-1rodete2-amd64, locale en_US.UTF-8)
    ! Upstream repository git@github.com:justinmc/flutter.git is not a standard remote.
      Set environment variable "FLUTTER_GIT_URL" to git@github.com:justinmc/flutter.git to dismiss this error.
[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.2)
[✓] Chrome - develop for the web
[✓] Linux toolchain - develop for Linux desktop
[✓] Android Studio (version 2021.3)
[✓] Android Studio (version 2022.2)
[✓] Connected device (2 available)
[✓] Network resources

! Doctor found issues in 1 category.
```

</details>