53 Commits

Author SHA1 Message Date
Victor Sanni
0a2f905b1c
[A11y] Add semantics for CupertinoExpansionTile (#174480)
Fixes [Add semantics for
CupertinoExpansionTile](https://github.com/flutter/flutter/issues/173446)
2025-09-03 18:49:07 +00:00
Kate Lovett
a04fb324be
Bump Dart to 3.8 and reformat (#171703)
Bumps the Dart version to 3.8 across the repo (excluding
engine/src/flutter/third_party) and applies formatting updates from Dart
3.8.

## Pre-launch Checklist

- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [x] I read and followed the [Flutter Style Guide], including [Features
we expect every widget to implement].
- [x] I signed the [CLA].
- [ ] I listed at least one issue that this PR fixes in the description
above.
- [ ] I updated/added relevant documentation (doc comments with `///`).
- [x] I added new tests to check the change I am making, or this PR is
[test-exempt].
- [x] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [x] All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel
on [Discord].

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
2025-07-07 17:58:32 +00:00
Michael Goderbauer
5491c8c146
Auto-format Framework (#160545)
This auto-formats all *.dart files in the repository outside of the
`engine` subdirectory and enforces that these files stay formatted with
a presubmit check.

**Reviewers:** Please carefully review all the commits except for the
one titled "formatted". The "formatted" commit was auto-generated by
running `dev/tools/format.sh -a -f`. The other commits were hand-crafted
to prepare the repo for the formatting change. I recommend reviewing the
commits one-by-one via the "Commits" tab and avoiding Github's "Files
changed" tab as it will likely slow down your browser because of the
size of this PR.

---------

Co-authored-by: Kate Lovett <katelovett@google.com>
Co-authored-by: LongCatIsLooong <31859944+LongCatIsLooong@users.noreply.github.com>
2024-12-19 20:06:21 +00:00
Taha Tesser
5d2353c105
CalendarDatePicker doesn't announce selected date on desktop (#143583)
fixes [Screen reader is not announcing the selected date as selected on DatePicker](https://github.com/flutter/flutter/issues/143439)

### Descriptions
- This fixes an issue where `CalendarDatePicker` doesn't announce selected date on desktop.
- Add semantic label to describe the selected date is indeed "Selected".

### Code sample

<details>
<summary>expand to view the code sample</summary> 

```dart
import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return const MaterialApp(
      home: MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key, required this.title});

  final String title;

  @override
  MyHomePageState createState() => MyHomePageState();
}

class MyHomePageState extends State<MyHomePage> {
  void _showDatePicker() async {
    await showDatePicker(
      context: context,
      initialDate: DateTime.now(),
      firstDate: DateTime(1900),
      lastDate: DateTime(2200),
    );
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title,
            style: const TextStyle(fontFamily: 'ProductSans')),
      ),
      body: const Center(
        child: Text('Click the button to show date picker.'),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: _showDatePicker,
        tooltip: 'Show date picker',
        child: const Icon(Icons.edit_calendar),
      ),
    );
  }
}

// import 'package:flutter/material.dart';

// void main() => runApp(const MyApp());

// class MyApp extends StatelessWidget {
//   const MyApp({super.key});

//   @override
//   Widget build(BuildContext context) {
//     return MaterialApp(
//       debugShowCheckedModeBanner: false,
//       home: Scaffold(
//         body: Center(
//           child: CalendarDatePicker(
//             initialDate: DateTime.now(),
//             firstDate: DateTime(2020),
//             lastDate: DateTime(2050),
//             onDateChanged: (date) {
//               print(date);
//             },
//           ),
//         ),
//       ),
//     );
//   }
// }
```

</details>

### Before

https://github.com/flutter/flutter/assets/48603081/c82e1f15-f067-4865-8a5a-1f3c0c8d91da

### After

https://github.com/flutter/flutter/assets/48603081/193d9e26-df9e-4d89-97ce-265c3d564607
2024-02-21 08:59:24 +00:00
Qun Cheng
e86c1c88e2
Add tooltip for the clear button on SearchAnchor's search view (#141804)
Fixes #141347
This PR is to add a "clear text" tooltip for the clear button on `SearchAnchor`'s search view and also add a `clearButtonTooltip` entry for `material_localizations`.
2024-01-23 17:47:06 +00:00
Polina Cherkasova
baf739c8e6
Remove usage of testWidgetsWithLeakTracking. (#140239) 2023-12-15 14:13:31 -08:00
LouiseHsu
3f34b480c8
[Framework] Add Share to selection controls (#132599)
In native iOS, users are able to select text and initiate a share menu, which provides several standard services, such as copy, sharing to social media, direct ability to send to various contacts through messaging apps, etc. 

https://github.com/flutter/engine/assets/36148254/d0af7034-31fd-412e-8636-a06bbff54765

This PR is the framework portion of the changes that will allow Share to be implemented.
The corresponding merged engine PR is [here](https://github.com/flutter/engine/pull/44554)
This PR addresses https://github.com/flutter/flutter/issues/107578
More details are available in this [design doc](https://github.com/flutter/engine/pull/flutter.dev/go/add-missing-features-to-selection-controls)
2023-08-17 23:36:11 +00:00
Polina Cherkasova
a7b69b069f
Unpin leak_tracker and handle breaking changes in API. (#132352) 2023-08-14 10:05:20 -07:00
LouiseHsu
d9cb50e63d
[framework] Add Search Web to selection controls for iOS (#131898)
This PR adds framework support for the Search Web feature in iOS. 

https://github.com/flutter/flutter/assets/36148254/c159f0d9-8f14-45e7-b295-e065b0826fab

The corresponding merged engine PR can be found [here](https://github.com/flutter/engine/pull/43324).
This PR addresses https://github.com/flutter/flutter/issues/82907 
More details are available in this [design doc](https://docs.google.com/document/d/1QizXwBiO-2REIcEovl5pK06BaLPOWYmNwOE5jactJZA/edit?resourcekey=0-1pb9mJiAq29Gesmt25GAug)
2023-08-08 17:34:17 +00:00
LouiseHsu
f019789565
[framework] Add Look Up to selection controls for iOS (#131798)
This PR adds framework support for the Look Up feature in iOS. 

https://github.com/flutter/flutter/assets/36148254/d301df79-4e23-454f-8742-2f8e39c2960c

The corresponding merged engine PR can be found [here](https://github.com/flutter/engine/pull/43308).
This PR addresses https://github.com/flutter/flutter/issues/82907 
More details are available in this [design doc.](flutter.dev/go/add-missing-features-to-selection-controls)

This is the same PR as https://github.com/flutter/flutter/pull/130532, this is an attempt to fix the Google Testing issue
2023-08-02 20:20:39 +00:00
Polina Cherkasova
e8b397caca
Setup leak tracking regression for material. (#130169) 2023-07-22 06:45:27 -07:00
Greg Spencer
258382c594
Add menu dismiss localization (#128613)
## Description

Modifies the semantic label for popup and context menus to be "Dismiss menu" instead of just "Dismiss".

## Related Issues
 - Fixes https://github.com/flutter/flutter/issues/118994

## Tests
 - Updated tests
2023-07-19 22:48:40 +00:00
luckysmg
e0ad12969f
[framework] Add textField OCR support for framework side (#96637)
iOS OCR keyboard input support.
2023-07-06 08:51:06 -07:00
Taha Tesser
15a7e07395
Fix showDatePicker in input mode throws an ArgumentError (#126525)
fixes https://github.com/flutter/flutter/issues/126397

The `parseCompactDate` method in `material_localizations.dart` with long text throws an argument error before the date picker could handle it to show a validation error while the date picker is on autovalidate.

This PR adds `try/catch` in the `parseCompactDate` to return null on the argument error.
2023-05-12 16:56:13 +00:00
chunhtai
f662f2efe8
ExpansionTile audit (#124281)
ExpansionTile audit
2023-04-10 20:22:54 +00:00
chunhtai
9e4b5fb7d9
Adds i18n to widget layer (#123620)
Adds i18n to widget layer
2023-04-04 22:57:35 +00:00
Xilai Zhang
153fce4d45
Revert "Fix ExpansionTile hint for Android (#120881)" (#121624)
This reverts commit fd65fd1b161277cec815ea2b10d63976b7d0da6d.
2023-02-28 13:15:47 -08:00
Taha Tesser
fd65fd1b16
Fix ExpansionTile hint for Android (#120881)
Fix `ExpansionTile` double tap to collapse/expanded and expanded/collapsed states semantics announcements
2023-02-27 18:40:17 +00:00
harperl-lgtm
7f7a8778d8
Implemented Scrim Focus for BottomSheet (#116743)
* Implemented Scrim Focus for BottomSheet so that assistive technology users can focus and tap on the scrim to close the BottomSheet, which they could not do before the change . The Scrim Focus's size changes to avoid overlapping the BottomSheet.
2022-12-20 10:02:22 -05:00
Greg Spencer
ecf9b2d20a
Update localization of shortcut labels in menus (#116681)
* Fix Menu shortcut labels

* Remove invalid localizations

* Add more localization for Shift

* Add generated localizations

* Fix Test
2022-12-16 19:57:17 +00:00
harperl-lgtm
a570fd25d8
Date picker special labeling for currentDate with localization and te… (#116433)
* Date picker special labeling for currentDate with localization and tests.

* Updated CalendarDatePicker semantics test

* removed recursive import

* changed labeling for current date to be less verbose
2022-12-07 09:21:44 -05:00
Greg Spencer
6504f2896c
Adds menuBarMenuLabel, and removes unneeded key localizations (#102100)
When I added localizations for shortcut keys, I added some that actually can't be shortcut keys, so I'm removing them again. These are mostly Japanese-specific keys that don't even appear on modern keyboards for the most part.

Also, added menuBarMenuLabel for an accessibility label for menu bar menus.

I modified the code for the localization generation scripts to add a --remove-undefined flag that will remove any localizations that don't appear in the canonical locale.
2022-05-09 09:25:52 -07:00
Greg Spencer
940986e00a
Add material localizations for keyboard keys used for shortcut descriptions in menus. (#99020)
This change adds some localizations for keyboard keys that will be used in creating shortcut descriptions in menus.
2022-03-02 18:56:47 -08:00
Jan Lübeck
9c434c8260
Adds First/Last buttons to PaginatedDataTable (#73964) 2021-02-01 18:06:06 -08:00
Michael Goderbauer
6cb6eef615
Make Material/CupertinoLocalizations non-nullable (#68807) 2020-10-23 09:12:42 -07:00
Shi-Hao Hong
46238de8c5
[NNBD] Migrate some Material tests to NNBD (#67887)
Migrates the following files to NNBD: 
* input_decorator_test.dart
* list_tile_test.dart
* localizations_test.dart
* material_button_test.dart
* material_state_property_test.dart
* material_test.dart
* mergeable_material_test.dart
2020-10-13 07:57:23 +08:00
Greg Spencer
ca713557d7
New license page with fix for zero licenses. (#60552)
This amends #57588 by adding code that also handles the zero license case, and adds translation strings for that.
2020-06-30 09:15:04 -07:00
rami-a
50612db86e
Localized new strings added in the redesigned Material Time Picker (#60096) 2020-06-24 10:33:03 -07:00
Tonic Artos
65550d0f0c
New license page. (#57588)
This is a PR addressing #57226 - Proposal: New UI for Licenses Page.

This PR replaces the previous single panel license page with one that uses a master/detail flow (MDFlow) to display packages and their respective licenses.

The License Page API remains unchanged. The logic for processing the license data is kept largely the same. This PR changes how the licenses are displayed, by introducing a responsive UI using the master/detail UI pattern. For now I am calling it Master Detail Flow, or MDFlow.

MDFlow manifests as two layouts depending on the screen size. On small and medium displays, as determined by the breakpoints given by the Material Design Spec, MDFlow utilises a nested layout. On large displays, MDFlow uses a two panel (lateral) layout. MDFlow is implemented in this PR using a Navigator for the nested layout, and a Stack for the lateral layout. The master and detail views are built using builders. For the interactive component, detail pages are requested from the master view using a proxy obtained by a widget lookup on the build context; MasterDetailFlow.of(context).
2020-06-23 09:19:45 -07:00
Alexandre Ardhuin
4d7525f05c
Opt out nnbd in packages/flutter (#59186)
* add language version 2.8 in packages/flutter

* enable non-nullable analyzer flag
2020-06-11 14:11:30 +02:00
Darren Austin
7706a97aba
Localized new strings added in the redesigned Material Date Picker (#56645) 2020-05-14 11:02:11 -07:00
Justin McCandless
4841a7ed6f
Text Selection Overflow (Android) (#49391)
Adds an overflow menu to the text selection menu on Android when the items overflow.
2020-03-11 13:36:10 -07:00
Ian Hickson
449f4a6673
License update (#45373)
* Update project.pbxproj files to say Flutter rather than Chromium

Also, the templates now have an empty organization so that we don't cause people to give their apps a Flutter copyright.

* Update the copyright notice checker to require a standard notice on all files

* Update copyrights on Dart files. (This was a mechanical commit.)

* Fix weird license headers on Dart files that deviate from our conventions; relicense Shrine.

Some were already marked "The Flutter Authors", not clear why. Their
dates have been normalized. Some were missing the blank line after the
license. Some were randomly different in trivial ways for no apparent
reason (e.g. missing the trailing period).

* Clean up the copyrights in non-Dart files. (Manual edits.)

Also, make sure templates don't have copyrights.

* Fix some more ORGANIZATIONNAMEs
2019-11-27 15:04:02 -08:00
David Shuckerow
99d5ef903c
Add custom actions to the reorderable list (#20108) 2018-08-07 12:48:23 -07:00
Alexandre Ardhuin
eda03e2586
re-re-enable lint unnecessary_const (#20103) 2018-08-02 12:02:32 +02:00
Todd Volkert
00aac68e2d
Revert flutter/flutter#19592 (#19861)
It was causing problems rolling Flutter into Fuchsia
2018-07-27 08:44:39 -07:00
Alexandre Ardhuin
27018359d2
re-enable lint unnecessary_const (#19592)
* re-enable lint unnecessary_const

* remove trailling whitespaces

* remove unnecessary const (after merge)
2018-07-23 08:31:48 +02:00
Ian Hickson
f630f90d6d
Revert "enable lint unnecessary_const (#19342)" (#19423)
This reverts commit cc1cf13eec6752af992d3db0265cf04cc90bfd13.
2018-07-16 13:30:27 -07:00
Alexandre Ardhuin
cc1cf13eec
enable lint unnecessary_const (#19342) 2018-07-16 21:43:48 +02:00
Michael Goderbauer
d5a103402c
Expandable Search (#17629) 2018-05-24 09:30:37 -07:00
Jonah Williams
b1ecf1ea9a
Add localizations for navigation menu, popup menu, dialog, and alert (#16633)
* add localizations for navigation menu, popup menu, dialog, and alert
2018-04-16 14:09:20 -07:00
Alexandre Ardhuin
841d5d7bd5
prefer_const_declarations on local variables (#14358) 2018-02-01 07:51:26 +01:00
Michael Goderbauer
f9cf5a1f3d
Add a11y label to modal barrier (#13543) 2017-12-14 15:03:51 -08:00
Ian Hickson
d6f496cab8
Localize the Chip delete button's default tooltip (#13312)
...and document what I did.
2017-12-04 12:59:48 -08:00
Hans Muller
c3d56b1dad flutter_localization optional package (#12410) 2017-10-11 16:01:13 -07:00
Ian Hickson
953dabc70b Fix some typos (#12233) 2017-09-24 01:40:42 -07:00
Yegor
8c3d5838dd Fix inherited widget notifications in Localizations (#12213)
* Fix inherited widget notifications in Localizations

* address comments
2017-09-22 10:49:19 -07:00
Hans Muller
08869497d0 About Box L10N (#12062) 2017-09-15 10:15:44 -07:00
Hans Muller
9fb6fd81b9 Localizations overrides (#12094) 2017-09-15 07:37:08 -07:00
Hans Muller
96a70e89b6 More Localizations (#12021) 2017-09-12 13:15:33 -07:00