text-rendering-tests icon indicating copy to clipboard operation
text-rendering-tests copied to clipboard

Unicode’s test suite for text rendering engines

Results 20 text-rendering-tests issues
Sort by recently updated
recently updated
newest added

Apple CoreText two engines

[{"_id":"6383ed0d4b97542c9a34b7c7","body":"@brawer \r\nis it because of difference between NSTextView and NSTextField?\r\n","issue_id":1660317088465,"origin_id":418904387,"user_origin_id":14062593,"create_time":1536187206,"update_time":1536187206,"id":1669590285283,"updated_at":"2022-11-27T23:04:45.282000Z","created_at":"2022-11-27T23:04:45.282000Z"},{"_id":"6383ed0d4b97542c9a34b7c8","body":"Hello @brawer \r\n\r\nCould you please help create a test for this?","issue_id":1660317088465,"origin_id":469315975,"user_origin_id":14062593,"create_time":1551716642,"update_time":1551716642,"id":1669590285286,"updated_at":"2022-11-27T23:04:45.286000Z","created_at":"2022-11-27T23:04:45.286000Z"},{"_id":"6383ed0d4b97542c9a34b7c9","body":"I have no idea if\/why CoreText would behave differently in different apps. If you can reproduce, consider filing a bug with Apple. If you tell me which specific CoreText APIs to call, I can change the test suite, or (preferred by me) just send a pull request via GitHub.","issue_id":1660317088465,"origin_id":469333940,"user_origin_id":1527880,"create_time":1551719362,"update_time":1551719362,"id":1669590285290,"updated_at":"2022-11-27T23:04:45.289000Z","created_at":"2022-11-27T23:04:45.289000Z"},{"_id":"6383ed0d4b97542c9a34b7ca","body":"This happens in notes app and browser while typing.\r\n\r\nwhen text is not in edit mode in browser, text is rendering correctly.\r\nMy guess, its something to do with nstextfield vs nstextview\r\n\r\nCould we reproduce this issue in this test?\r\n\r\nhere are text\r\n\u0c85\u0c95\u0ccd\u0c9f\u0ccd\u0cac\u0ccb\u0cac\u0cb0\u0ccd\r\n\u0c85\u0c95\u0ccd\u0c9f\u0ccd\u0cb0\u0ccb\u0cac\u0cb0\u0ccd\u200c\r\n\u0c85\u0cb0\u0ccd\u0c95\u0ccd\u0c9f\u0ccd\u0cb0\u0ccb\u0cac\u0cb0\u0ccd\r\n\u0c85\u0cb0\u0ccd\u0c95\u0ccd\u0c9f\u0ccb\u0cac\u0cb0\u0ccd\r\n\r\nalso \r\n\u0c95\u0ca8\u0ccd\u0ca8\u0ca1\u0cca \r\nif it is at the beginning of the notes and no other text.\r\n\r\n![image1](https:\/\/user-images.githubusercontent.com\/14062593\/53750738-381a0780-3e70-11e9-8c05-f523f5f65e8f.jpeg)\r\n![image2](https:\/\/user-images.githubusercontent.com\/14062593\/53750739-381a0780-3e70-11e9-8e42-8868cec793d8.jpeg)\r\n\r\n","issue_id":1660317088465,"origin_id":469342309,"user_origin_id":14062593,"create_time":1551720731,"update_time":1551720731,"id":1669590285293,"updated_at":"2022-11-27T23:04:45.292000Z","created_at":"2022-11-27T23:04:45.292000Z"},{"_id":"6383ed0d4b97542c9a34b7cb","body":"Which CoreText API would need to be called exactly? (For the test suite, we need positioned glyph vectors which can be converted to outlines). The current code calls the regular CoreText and CoreGraphics APIs. If you know of another API that should be called, feel free to send a patch via GitHub.","issue_id":1660317088465,"origin_id":469640650,"user_origin_id":1527880,"create_time":1551784260,"update_time":1551784260,"id":1669590285295,"updated_at":"2022-11-27T23:04:45.295000Z","created_at":"2022-11-27T23:04:45.295000Z"}] comment

@brawer Hello Sascha, There seems two modes or type of Text engine in MacOS and iOS. 1. Notes app, Twitter -new tweet window, youtube comment window 2. Pages, emails, twitter-...

Add DirectWrite into the test candidates?

[{"_id":"6383f0e670db72139b155ef5","body":"This would be great! Pull requests welcome. (Sorry I can't do this myself; my last Windows machine was running NT 3.51).","issue_id":1660317088467,"origin_id":375963636,"user_origin_id":1527880,"create_time":1521977703,"update_time":1521977703,"id":1669591270115,"updated_at":"2022-11-27T23:21:10.115000Z","created_at":"2022-11-27T23:21:10.115000Z"},{"_id":"6383f0e670db72139b155ef6","body":"I am not working for DW. But I can forward this to them.\r\n\r\n\u53d1\u81ea\u6211\u7684 iPhone\r\n\r\n\u5728 2018\u5e743\u670825\u65e5\uff0c19:35\uff0cSascha Brawer <[email protected]<mailto:[email protected]>> \u5199\u9053\uff1a\r\n\r\n\r\nThis would be great! Pull requests welcome. (Sorry I can't do this myself; my last Windows machine was running NT 3.51).\r\n\r\n\u2014\r\nYou are receiving this because you authored the thread.\r\nReply to this email directly, view it on GitHub<https:\/\/nam02.safelinks.protection.outlook.com\/?url=https%3A%2F%2Fgithub.com%2Funicode-org%2Ftext-rendering-tests%2Fissues%2F47%23issuecomment-375963636&data=02%7C01%7C%7Cddf55e0076c94668bb1508d5924474ad%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636575745064979569&sdata=fRBoXV9gE2SCZ1TFaf%2B1E%2B3b%2FtCz6x%2BkgW2D92PwP4I%3D&reserved=0>, or mute the thread<https:\/\/nam02.safelinks.protection.outlook.com\/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAAOp215cgA_f9EGB6nI0hiLCgwkdiBF6ks5th4DngaJpZM4S6GeY&data=02%7C01%7C%7Cddf55e0076c94668bb1508d5924474ad%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636575745064979569&sdata=v5pojvQmhtTCwQ6ReAdHLMj8ezIDWEyXRd1B6hL%2BgCU%3D&reserved=0>.\r\n","issue_id":1660317088467,"origin_id":375963738,"user_origin_id":240091,"create_time":1521977824,"update_time":1521977824,"id":1669591270119,"updated_at":"2022-11-27T23:21:10.118000Z","created_at":"2022-11-27T23:21:10.118000Z"},{"_id":"6383f0e670db72139b155ef7","body":"Also, I am not very sure whether DWrite could extract the path of \"rendered\" text. Maybe we need to implement bitmap comparison.","issue_id":1660317088467,"origin_id":375976362,"user_origin_id":240091,"create_time":1521989568,"update_time":1521989568,"id":1669591270121,"updated_at":"2022-11-27T23:21:10.121000Z","created_at":"2022-11-27T23:21:10.121000Z"},{"_id":"6383f0e670db72139b155ef8","body":"cc. @fdwr ","issue_id":1660317088467,"origin_id":453329893,"user_origin_id":240091,"create_time":1547169262,"update_time":1547169262,"id":1669591270124,"updated_at":"2022-11-27T23:21:10.123000Z","created_at":"2022-11-27T23:21:10.123000Z"},{"_id":"6383f0e670db72139b155ef9","body":"@be5invis I'm also not on DWrite now :), but you totally can get the outline via IDWriteFontFace::GetGlyphRunOutline. If you want the outline for just a single glyph, pass a glyph count = 1. https:\/\/docs.microsoft.com\/en-us\/windows\/desktop\/api\/dwrite\/nf-dwrite-idwritefontface-getglyphrunoutline It calls back to your implementation of IDWriteGeometrySink with a series of AddLines and AddBeziers. https:\/\/docs.microsoft.com\/en-us\/windows\/desktop\/api\/d2d1\/nn-d2d1-id2d1simplifiedgeometrysink","issue_id":1660317088467,"origin_id":453348091,"user_origin_id":1809166,"create_time":1547173359,"update_time":1547173359,"id":1669591270126,"updated_at":"2022-11-27T23:21:10.126000Z","created_at":"2022-11-27T23:21:10.126000Z"}] comment

With Macintosh and AAT-specific cases removed.

For test case SHARAN-1, the test suite reports a test failure for CoreText on macOS 10.14 but the rendered path looks fine. For example, the first path in the test...

Add glyf table test cases for more composite glyphs

[{"_id":"6383f0c34b97542c9a34bed1","body":"\ud83d\udc4dCan you build test fonts?","issue_id":1660317088472,"origin_id":369916651,"user_origin_id":1527880,"create_time":1519996204,"update_time":1519996204,"id":1669591235488,"updated_at":"2022-11-27T23:20:35.488000Z","created_at":"2022-11-27T23:20:35.488000Z"}] comment

For example: - composite glyphs with nested components (components that are themselves composite glyphs), - composite glyphs with attachment points (components where bit ARGS_ARE_XY_VALUES is set), - composite glyphs with...

Apple core text and Microsoft 10 doesn't remove the dotted circle from diacritics with combination of non-breaking space(\u00A0). Although harfbuzz removes the dotted circle (\u25CC) from diacritics. Harfbuzz leaves a...

Variable fonts without a STAT table

[{"_id":"66ca792b5a1d13a44706ae97","body":"> > * *A [style attributes (STAT)](https:\/\/learn.microsoft.com\/en-us\/typography\/opentype\/spec\/stat) table is required and is used to establish relationships between different fonts belonging to a family and to provide some degree of compatibility with legacy applications by allowing platforms to project variation instances involving many axes into older font-family models that assume a limited set of axes.\r\n\r\nYeah that's unfortunately the spec being too strict. Webfonts for example wouldn't need STAT table at all...","issue_id":1709224739365,"origin_id":1810476725,"user_origin_id":142891,"create_time":1699976306,"update_time":1699976306,"id":1724545323386,"updated_at":"2024-08-25T00:22:03.385000Z","created_at":"2024-08-25T00:22:03.385000Z"},{"_id":"66ca792b5a1d13a44706ae98","body":"> Yeah that's unfortunately the spec being too strict.\r\n\r\nDo you think I should open an issue on the OpenType docs instead then?","issue_id":1709224739365,"origin_id":1811527864,"user_origin_id":21787,"create_time":1700002852,"update_time":1700002852,"id":1724545323482,"updated_at":"2024-08-25T00:22:03.482000Z","created_at":"2024-08-25T00:22:03.482000Z"},{"_id":"66ca792b5a1d13a44706ae99","body":"> > Yeah that's unfortunately the spec being too strict.\r\n> \r\n> Do you think I should open an issue on the OpenType docs instead then?\r\n\r\nWhat can I say. It's one of those things that @PeterConstable and I disagree on I think.","issue_id":1709224739365,"origin_id":1811529156,"user_origin_id":142891,"create_time":1700002927,"update_time":1700002927,"id":1724545323487,"updated_at":"2024-08-25T00:22:03.486000Z","created_at":"2024-08-25T00:22:03.486000Z"},{"_id":"66ca792b5a1d13a44706ae9a","body":"FWIW, I think the spec should be strict, while implementation(s) can choose to be tolerant. That's the difference between what should be, and what's tolerated\/work-arounded\/ignored. So often, I hear that since something is tolerated by implementation X, therefore the specification must be loosen up... Cc @PeterConstable ","issue_id":1709224739365,"origin_id":1811656490,"user_origin_id":14662953,"create_time":1700011789,"update_time":1700011789,"id":1724545323496,"updated_at":"2024-08-25T00:22:03.496000Z","created_at":"2024-08-25T00:22:03.496000Z"},{"_id":"66ca792b5a1d13a44706ae9b","body":"Fixing the test fonts in this repo to make them conform to the OpenType spec sounds good. Even if it may be arguable whether or not STAT should be required, the current spec mandates it. Feel free to change the test fonts, [ttx](https:\/\/github.com\/fonttools\/fonttools) is your friend. Pull requests welcome.","issue_id":1709224739365,"origin_id":1816717141,"user_origin_id":1527880,"create_time":1700238110,"update_time":1700238110,"id":1724545323590,"updated_at":"2024-08-25T00:22:03.590000Z","created_at":"2024-08-25T00:22:03.590000Z"}] comment

I've been working on hooking up some recent variable fonts work to the test suite and noticed that several of the test fonts used for variable font tests are lacking...

There are no test cases for these two fonts: [TestGVAR-Composite-0.ttf](https://github.com/unicode-org/text-rendering-tests/blob/main/fonts/TestGVAR-Composite-0.ttf) [TestGVAR-Composite-Missing.ttf](https://github.com/unicode-org/text-rendering-tests/blob/main/fonts/TestGVAR-Composite-Missing.ttf) Is a glyph composed of components supposed to render the components in their transformed variant if the glyph itself...

No SVG tests

[{"_id":"67c379fe1c4ebeccd906b69b","body":"Recent version of skia-python can render them. (And colrv1 too). Don't know if you want to add that.","issue_id":1715976850457,"origin_id":2015645243,"user_origin_id":14662953,"create_time":1711130849,"update_time":1711130849,"id":1740863998860,"updated_at":"2025-03-01T21:19:58.859000Z","created_at":"2025-03-01T21:19:58.859000Z"},{"_id":"67c379fe1c4ebeccd906b69c","body":"Is there at least a standardized structure of outputting SVG for color glyphs? I'd like to prevent implementing it one way and then having to refactor it once tests are added.","issue_id":1715976850457,"origin_id":2023791903,"user_origin_id":13076806,"create_time":1711567293,"update_time":1711567293,"id":1740863998868,"updated_at":"2025-03-01T21:19:58.868000Z","created_at":"2025-03-01T21:19:58.868000Z"},{"_id":"67c379fe1c4ebeccd906b69d","body":"Not sure it answers your question, but nanoemoji can convert SVGs to various color-font formats:\r\nhttps:\/\/github.com\/googlefonts\/nanoemoji","issue_id":1715976850457,"origin_id":2023811169,"user_origin_id":142891,"create_time":1711567969,"update_time":1711567969,"id":1740863998874,"updated_at":"2025-03-01T21:19:58.873000Z","created_at":"2025-03-01T21:19:58.873000Z"},{"_id":"67c379fe1c4ebeccd906b69e","body":"> Not sure it answers your question, but nanoemoji can convert SVGs to various color-font formats: https:\/\/github.com\/googlefonts\/nanoemoji\r\n\r\nThanks! We actually need to look at the other way round, SVG from COLR\/CPAL, but maybe there's something in there...","issue_id":1715976850457,"origin_id":2023933304,"user_origin_id":13076806,"create_time":1711571587,"update_time":1711571587,"id":1740863998879,"updated_at":"2025-03-01T21:19:58.879000Z","created_at":"2025-03-01T21:19:58.879000Z"},{"_id":"67c379fe1c4ebeccd906b69f","body":"> Is there at least a standardized structure of outputting SVG for color glyphs? I'd like to prevent implementing it one way and then having to refactor it once tests are added.\r\n\r\nSee this example, up to about line 50:\r\nhttps:\/\/github.com\/rougier\/freetype-py\/blob\/master\/examples\/ot-svg-draw-skia.py\r\n\r\nIt extracts the SVG data from a ot-svg glyph via freetype-py, then (from about line 50 onwards) draw it with skia. You can replace the drawing code with another svg drawing library. This is the earliest example that works with older skia-python. The other `*ot-svg*` examples are better (one uses skia python, the other use pycairo\/rsvg - there are 3 examples in total which deals with ot-svg fonts), if you are not interested in ot-svg internals.","issue_id":1715976850457,"origin_id":2025827711,"user_origin_id":14662953,"create_time":1711649569,"update_time":1711649659,"id":1740863998885,"updated_at":"2025-03-01T21:19:58.885000Z","created_at":"2025-03-01T21:19:58.885000Z"},{"_id":"67c379fe1c4ebeccd906b6a0","body":"I think there's a misunderstanding. The text rendering tests expect an SVG structure to compare if a glyph is rendered correctly. As there are no tests for color fonts (neither SVG fonts, nor COLR\/CPAL fonts), it's currently unknown what SVG structure is expected. ","issue_id":1715976850457,"origin_id":2025935529,"user_origin_id":13076806,"create_time":1711653508,"update_time":1711653508,"id":1740863998891,"updated_at":"2025-03-01T21:19:58.890000Z","created_at":"2025-03-01T21:19:58.890000Z"},{"_id":"67c379fe1c4ebeccd906b6a1","body":"The freetype-py code extracts the ot-svg data directly as a svg document. (Supposedly with a subset of svg functionality, since animations etc don't make sense as avg glyphs). Wouldn't that be just a direct comparison after some lint'ting?","issue_id":1715976850457,"origin_id":2025983339,"user_origin_id":14662953,"create_time":1711655108,"update_time":1711655108,"id":1740863998895,"updated_at":"2025-03-01T21:19:58.894000Z","created_at":"2025-03-01T21:19:58.894000Z"}] comment

SVG fonts were added a while ago via #56, but there are actually no tests for SVG font rendering in the test suite. Opentype.js may soon have parsing and writing...

With cmake 4.0.3 on macOS, compilation fails with cmake configuration errors. Someone should do something about it. :-)

It doesn't look like any engine passes the SHKNDA-3 test. I note 'Freestack' and Allsorts both produce output that appears to match the expected output visually. The difference seems to...