- From: Xu Zheng (gardenia) <zxu@gardenia-corp.com>
- Date: Wed, 16 Feb 2022 21:37:11 -0500
- To: W3C Publishing Community Group <public-publishingcg@w3.org>
- Message-ID: <dc62ed08-3af9-83cd-d674-6cbc4a55e916@gardenia-corp.com>
Hi folks This week POC (https://wysebee.com/?startSelector=%23home-header%3A0%3A8&endSelector=%23home-header%3A0%3A15) to select a random string in web browser bring me back to one question again. "Can we change CFI spec a bit to support CSS Selector"? As a reading system programmer the most difficult part to implement CFI for highlight are: 1. need to go through all element to identify element for CFI such as following /6/4!/4/10/2/1 2. when we have this CFI generated for highlight then it's still difficult to go through DOM to locate this element when rendering highlight. I went through CSS selector again as well it is possible to use CSS selector to locate every element (for example implementation like this https://www.npmjs.com/package/css-selector-generator). And actually I remember when someone had brought up CFI to CSS WG and Web browser vendor a few years ago mostly two questions raised from them: 1. why don't use CSS selector 2. should avoid inventing new way attaching to URI such as following #epubcfi(/6/4!/4/10/2/1:3[%d0%a4-%22spa%20ce%22-99%25-aa^[bb^]^^]) The rest of CFI I think are very useful by defining charOffset of each text node and the node index of the target node which are not covered by CSS Selector (you might want to ask - can we ask CSS Selector to support selecting charOffset? I am not sure since CSS Selector seems only select element (https://www.w3.org/TR/selectors-4/#context) ). So I wonder, maybe we still can find a unified way to define annotation but with slightly changed CFI. In the POC I tried format like ?startSelector=<CSS Selector>:<node index>:<charOffset>&endSelector=<CSS Selector>:<node index>:<charOffset> But if make it more closer to "CFI" we might have something like this? So even if web browser might not support it natively but as long as epub could support then we can have something unified that end user could share highlight in the same book but different reading app. ?epubcfi=<CSS Selector>:<node index>:<charOffset>,<CSS Selector>:<node index>:<charOffset> And this format can satisfy "path-relative-scheme-less-URL string <https://url.spec.whatwg.org/#path-relative-scheme-less-url-string>" Cheers, -- Zheng Xu Chief Executive Officer Gardenia Corp https://gardenia-corp.com/
Received on Thursday, 17 February 2022 02:37:30 UTC