{"action":"created","issue":{"url":"https://api.github.com/repos/w3c/csswg-drafts/issues/567","repository_url":"https://api.github.com/repos/w3c/csswg-drafts","labels_url":"https://api.github.com/repos/w3c/csswg-drafts/issues/567/labels{/name}","comments_url":"https://api.github.com/repos/w3c/csswg-drafts/issues/567/comments","events_url":"https://api.github.com/repos/w3c/csswg-drafts/issues/567/events","html_url":"https://github.com/w3c/csswg-drafts/issues/567","id":180841835,"number":567,"title":"[css-text-3] Insufficient normative reference to UAX14 for the ID line breaking class","user":{"login":"frivoal","id":113268,"avatar_url":"https://avatars.githubusercontent.com/u/113268?v=3","gravatar_id":"","url":"https://api.github.com/users/frivoal","html_url":"https://github.com/frivoal","followers_url":"https://api.github.com/users/frivoal/followers","following_url":"https://api.github.com/users/frivoal/following{/other_user}","gists_url":"https://api.github.com/users/frivoal/gists{/gist_id}","starred_url":"https://api.github.com/users/frivoal/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/frivoal/subscriptions","organizations_url":"https://api.github.com/users/frivoal/orgs","repos_url":"https://api.github.com/users/frivoal/repos","events_url":"https://api.github.com/users/frivoal/events{/privacy}","received_events_url":"https://api.github.com/users/frivoal/received_events","type":"User","site_admin":false},"labels":[{"id":382591170,"url":"https://api.github.com/repos/w3c/csswg-drafts/labels/Agenda+","name":"Agenda+","color":"000000","default":false},{"id":381891990,"url":"https://api.github.com/repos/w3c/csswg-drafts/labels/css-text-3","name":"css-text-3","color":"c5def5","default":false},{"id":396217809,"url":"https://api.github.com/repos/w3c/csswg-drafts/labels/i18n","name":"i18n","color":"5319e7","default":false}],"state":"open","locked":false,"assignee":{"login":"frivoal","id":113268,"avatar_url":"https://avatars.githubusercontent.com/u/113268?v=3","gravatar_id":"","url":"https://api.github.com/users/frivoal","html_url":"https://github.com/frivoal","followers_url":"https://api.github.com/users/frivoal/followers","following_url":"https://api.github.com/users/frivoal/following{/other_user}","gists_url":"https://api.github.com/users/frivoal/gists{/gist_id}","starred_url":"https://api.github.com/users/frivoal/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/frivoal/subscriptions","organizations_url":"https://api.github.com/users/frivoal/orgs","repos_url":"https://api.github.com/users/frivoal/repos","events_url":"https://api.github.com/users/frivoal/events{/privacy}","received_events_url":"https://api.github.com/users/frivoal/received_events","type":"User","site_admin":false},"assignees":[{"login":"frivoal","id":113268,"avatar_url":"https://avatars.githubusercontent.com/u/113268?v=3","gravatar_id":"","url":"https://api.github.com/users/frivoal","html_url":"https://github.com/frivoal","followers_url":"https://api.github.com/users/frivoal/followers","following_url":"https://api.github.com/users/frivoal/following{/other_user}","gists_url":"https://api.github.com/users/frivoal/gists{/gist_id}","starred_url":"https://api.github.com/users/frivoal/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/frivoal/subscriptions","organizations_url":"https://api.github.com/users/frivoal/orgs","repos_url":"https://api.github.com/users/frivoal/repos","events_url":"https://api.github.com/users/frivoal/events{/privacy}","received_events_url":"https://api.github.com/users/frivoal/received_events","type":"User","site_admin":false},{"login":"fantasai","id":725717,"avatar_url":"https://avatars.githubusercontent.com/u/725717?v=3","gravatar_id":"","url":"https://api.github.com/users/fantasai","html_url":"https://github.com/fantasai","followers_url":"https://api.github.com/users/fantasai/followers","following_url":"https://api.github.com/users/fantasai/following{/other_user}","gists_url":"https://api.github.com/users/fantasai/gists{/gist_id}","starred_url":"https://api.github.com/users/fantasai/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fantasai/subscriptions","organizations_url":"https://api.github.com/users/fantasai/orgs","repos_url":"https://api.github.com/users/fantasai/repos","events_url":"https://api.github.com/users/fantasai/events{/privacy}","received_events_url":"https://api.github.com/users/fantasai/received_events","type":"User","site_admin":false},{"login":"kojiishi","id":1274377,"avatar_url":"https://avatars.githubusercontent.com/u/1274377?v=3","gravatar_id":"","url":"https://api.github.com/users/kojiishi","html_url":"https://github.com/kojiishi","followers_url":"https://api.github.com/users/kojiishi/followers","following_url":"https://api.github.com/users/kojiishi/following{/other_user}","gists_url":"https://api.github.com/users/kojiishi/gists{/gist_id}","starred_url":"https://api.github.com/users/kojiishi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kojiishi/subscriptions","organizations_url":"https://api.github.com/users/kojiishi/orgs","repos_url":"https://api.github.com/users/kojiishi/repos","events_url":"https://api.github.com/users/kojiishi/events{/privacy}","received_events_url":"https://api.github.com/users/kojiishi/received_events","type":"User","site_admin":false}],"milestone":null,"comments":3,"created_at":"2016-10-04T09:13:04Z","updated_at":"2016-10-31T14:13:39Z","closed_at":null,"body":"Css-text-3 refers normatively to UAX14 in a few places, including:\n- “[..] BK, CR, LF, CM, NL, and SG line breaking classes in [UAX14] must be honored.”\n- “[...] WJ, ZW, and GL line-breaking classes in [UAX14] must be honored”\n- “The line breaking behavior of a replaced element or other atomic inline is equivalent to an ideographic character (Unicode linebreaking class ID [UAX14]) [...]”\n- “[...] any typographic character units resolving to the NU (“numeric”), AL (“alphabetic”), or SA (“Southeast Asian”) line breaking classes [UAX14] are instead treated as ID (“ideographic characters”) for the purpose of line-breaking.”\n\nHowever, I cannot find any normative reference that requires the line-breaking behavior for characters with the line breaking class ID in UAX14 (Ideographic characters) to be honored, either directly or as part of a broader claim.\n\nThe 3rd and 4th bullets above suggest that it is expected, since something else is expected to behave like characters with that line breaking class, which doesn't make much sense if no particular behavior is expected of that class. Also, the design of the `break-word: normal` implicitly depends on this behavior being honored.\n\nThe following paragraph [in section 5](https://drafts.csswg.org/css-text-3/#line-breaking) also indicates that this behavior is expected, but this sentence reads like informative prose, or at least  seems too vague to be effectively testable.\n\n> In several other writing systems, (including Chinese, Japanese, Yi, and sometimes also Korean) a soft wrap opportunity is based on syllable boundaries, not word boundaries. In these systems a line can break anywhere except between certain character combinations. Additionally the level of strictness in these restrictions can vary with the typesetting style. \n\nThe spec does (normatively) state that\n\n> CSS does not fully define where soft wrap opportunities occur\n\nand (informatively) that\n\n> Further information on line breaking conventions can be found in [JLREQ] and [JIS4051] for Japanese, [ZHMARK] for Chinese, and in [UAX14] for all scripts in Unicode.\n\nand for sure, the full logic of where soft wrap opportunities should go is complex and impractical to specify, but without going into the full gory details of opening and closing punctuation and non-starter characters etc, it should be possible to ensure that at least the general case works out as expected.\n\nI think we should add a bullet point to [section 5.1 \"Line breaking details](https://drafts.csswg.org/css-text-3/#line-break-details). Maybe something like:\n\n> - When the `white-space` property allows wrapping, there is a soft wrap opportunity between pairs of characters with the ID line breaking class (see [!UAX14]). Additionally, there is a soft wrap opportunity before (and respectively after) characters with the ID line breaking class, unless the preceding (respectively following) character has the WJ or GL line breaking class (see [!UAX14]), or otherwise forbids breaks as determined by the `line-break` property.\n\nThis still leaves some wiggle room since the `line-break` property itself doesn't define exhaustive rules, but I think this should give a decent baseline requirement.\n\nEDIT: typos\n"},"comment":{"url":"https://api.github.com/repos/w3c/csswg-drafts/issues/comments/257304258","html_url":"https://github.com/w3c/csswg-drafts/issues/567#issuecomment-257304258","issue_url":"https://api.github.com/repos/w3c/csswg-drafts/issues/567","id":257304258,"user":{"login":"frivoal","id":113268,"avatar_url":"https://avatars.githubusercontent.com/u/113268?v=3","gravatar_id":"","url":"https://api.github.com/users/frivoal","html_url":"https://github.com/frivoal","followers_url":"https://api.github.com/users/frivoal/followers","following_url":"https://api.github.com/users/frivoal/following{/other_user}","gists_url":"https://api.github.com/users/frivoal/gists{/gist_id}","starred_url":"https://api.github.com/users/frivoal/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/frivoal/subscriptions","organizations_url":"https://api.github.com/users/frivoal/orgs","repos_url":"https://api.github.com/users/frivoal/repos","events_url":"https://api.github.com/users/frivoal/events{/privacy}","received_events_url":"https://api.github.com/users/frivoal/received_events","type":"User","site_admin":false},"created_at":"2016-10-31T14:13:39Z","updated_at":"2016-10-31T14:13:39Z","body":"If \"ID must be honored\" is acceptable, I'd be OK with that.\r\n\r\nI was worried that it wouldn't be, because the rules in UAX14 that pertains to ID characters are not well contained, and defining the interaction between ID characters and other types of characters when they're adjacent pulls in a large part of the rest of the spec, and at the same time, that doesn't resolve all ambiguities, and yet still defines a specific behavior for kinsoku-shori, which is something we were trying to leave partly undefined, partly influenced by the line-break property.\r\n\r\nThe text I proposed was an attempt to extract from UAX14 the key part of what makes line breaking for ID characters work the way it should, and defer the rest to the `line-break` property (which itself leaves large parts intentionally undefined).\r\n\r\nBut if you think that's overkill or fragile, and that we can just point to UAX14 and require that ID line breaking be honored, then great."}}
{"actor":{"display_login":"frivoal"}}