Repository navigation
Open
Labels
P2Important issues not at the top of the work listImportant issues not at the top of the work lista: internationalizationSupporting other languages or locales. (aka i18n)Supporting other languages or locales. (aka i18n)a: typographyText rendering, possibly libtxtText rendering, possibly libtxtc: parityWorks on one platform but not anotherWorks on one platform but not anotherplatform-webWeb applications specificallyWeb applications specificallyteam-webOwned by Web platform teamOwned by Web platform teamtriaged-webTriaged by Web platform teamTriaged by Web platform team
Description
The following test passes on non-Web but fails on Web:
testWidgets('recognizers split semantic node - bidi', (WidgetTester tester) async {
final SemanticsTester semantics = SemanticsTester(tester);
const TextStyle textStyle = TextStyle(fontFamily: 'Ahem');
await tester.pumpWidget(
RichText(
text: TextSpan(
style: textStyle,
children: <TextSpan>[
const TextSpan(text: 'hello world${Unicode.RLE}${Unicode.RLO} '),
TextSpan(
text: 'BOY',
recognizer: LongPressGestureRecognizer()..onLongPress = () { },
),
const TextSpan(text: ' HOW DO${Unicode.PDF} you ${Unicode.RLO} DO '),
TextSpan(
text: 'SIR',
recognizer: TapGestureRecognizer()..onTap = () { },
),
const TextSpan(text: '${Unicode.PDF}${Unicode.PDF} good bye'),
],
),
textDirection: TextDirection.ltr,
),
);
// The expected visual order of the text is:
// hello world RIS OD you OD WOH YOB good bye
// There are five unique text areas, they are, in visual order but
// showing the logical text:
// [hello world][SIR][HOW DO you DO][BOY][good bye]
// The direction of each varies based on the first bit of that area.
// The presence of the bidi formatting characters in the text is a
// bit dubious, but that's what we do currently, and it's not really
// clear what the perfect behavior would be...
final TestSemantics expectedSemantics = TestSemantics.root(
children: <TestSemantics>[
TestSemantics.rootChild(
rect: const Rect.fromLTRB(0.0, 0.0, 800.0, 600.0),
children: <TestSemantics>[
TestSemantics(
rect: const Rect.fromLTRB(-4.0, -4.0, 480.0, 18.0),
label: 'hello world${Unicode.RLE}${Unicode.RLO} ',
textDirection: TextDirection.ltr,
),
TestSemantics(
rect: const Rect.fromLTRB(416.0, -4.0, 466.0, 18.0),
label: 'BOY',
textDirection: TextDirection.rtl,
actions: <SemanticsAction>[SemanticsAction.longPress],
),
TestSemantics(
rect: const Rect.fromLTRB(192.0, -4.0, 424.0, 18.0),
label: ' HOW DO${Unicode.PDF} you ${Unicode.RLO} DO ',
textDirection: TextDirection.rtl,
),
TestSemantics(
rect: const Rect.fromLTRB(150.0, -4.0, 200.0, 18.0),
label: 'SIR',
textDirection: TextDirection.rtl,
actions: <SemanticsAction>[SemanticsAction.tap],
flags: <SemanticsFlag>[SemanticsFlag.isLink],
),
TestSemantics(
rect: const Rect.fromLTRB(472.0, -4.0, 606.0, 18.0),
label: '${Unicode.PDF}${Unicode.PDF} good bye',
textDirection: TextDirection.rtl,
),
],
),
],
);
expect(
semantics,
hasSemantics(
expectedSemantics,
ignoreTransform: true,
ignoreId: true,
),
);
semantics.dispose();
});This test is in text_test.dart and is disabled for Web right now.
Metadata
Metadata
Assignees
Labels
P2Important issues not at the top of the work listImportant issues not at the top of the work lista: internationalizationSupporting other languages or locales. (aka i18n)Supporting other languages or locales. (aka i18n)a: typographyText rendering, possibly libtxtText rendering, possibly libtxtc: parityWorks on one platform but not anotherWorks on one platform but not anotherplatform-webWeb applications specificallyWeb applications specificallyteam-webOwned by Web platform teamOwned by Web platform teamtriaged-webTriaged by Web platform teamTriaged by Web platform team
Activity
[web] Unskip 12 passing framework tests in text_test and opacity_test (…