- From: Xu Zheng (gardenia) <zxu@gardenia-corp.com>
- Date: Thu, 17 Feb 2022 07:35:43 -0500
- To: Lars Wallin <lars@colibrio.com>, Ivan Herman <ivan@w3.org>
- Cc: W3C Publishing Community Group <public-publishingcg@w3.org>
- Message-ID: <a1c071f0-15c3-a475-fb81-31e75961abce@gardenia-corp.com>
Yeah, it is already a web browser standard to identify a HTML element.
While I have not found the rest (locate to text) are well defined and
implemented yet.
What is the current status of https://www.w3.org/TR/selectors-states/?
It has Selector session which looks similar as annotation model.
Back to how to let web browser select some text through URI. To select
some text in a webpage we need node index inside a HTML element and char
offset inside the node which I found.
CFI has the most close definition. annotation model
(https://www.w3.org/TR/annotation-model/) is very close but it is still
need some modification to get mixture of CSS Selector and Text Position
Selector work together and I can see annotation-model has more benefit
about how to serialize annotation (wider than selector).
https://www.w3.org/TR/selectors-states/#serializing-iri-to-url is
interesting as well. I don't think a selector like this is supported by
web browser yet maybe I am wrong. so that has the similar difficult as
cfi when adopting to web browser.
http://example.org/page1
#selector(type=TextQuoteSelector,exact=annotation,
prefix=this%20is%20an%20,suffix=%20that%20has%20some)
Cheers,
Zheng
On 2022-02-17 2:34 a.m., Lars Wallin wrote:
> Good point. But, as you say, It's a very good starting point indeed 🙂
> No need to reengineer the wheel just for the fun of it 😉
>
> Cheers,
> Lars
>
> On Thu, 17 Feb 2022, 08:25 Ivan Herman, <ivan@w3.org> wrote:
>
>
>
>> On 17 Feb 2022, at 07:33, Lars Wallin <lars@colibrio.com> wrote:
>>
>> Hey Xu Zheng 👋
>>
>> There is actually already a standard for this. Have a look at the
>> Web Annotation Selectors and States document
>>
>> https://www.w3.org/TR/selectors-states/#CssSelector_def
>>
>> https://www.w3.org/TR/selectors-states/#serializing-iri-to-url
>
> Just to be precise here…. the selector part /is/ indeed a standard
> (defined formally in [1]) and just quoted in the note that you
> cite. But the URI translation thereof[2] is not.
>
> (I am all in favor of reusing the model, of course, if we can. But
> we should be careful with the expectations…)
>
> Ivan
>
>
> [1] https://www.w3.org/TR/annotation-model/
> [2] https://www.w3.org/TR/selectors-states/#frags
>
>
>>
>> Let's show the Web Annotations spec the love it deserves 🙂
>>
>> As EPUBCFI supports "extensions" which would let you tag these
>> selectors on to the CFI, making it EPUB compatible 👌
>>
>> http://idpf.org/epub/linking/cfi/epub-cfi.html#sec-extensions
>>
>> Cheers,
>> Lars
>>
>> On Thu, 17 Feb 2022, 03:37 Xu Zheng (gardenia),
>> <zxu@gardenia-corp.com> wrote:
>>
>> Hi folks
>>
>> This week POC
>> (https://wysebee.com/?startSelector=%23home-header%3A0%3A8&endSelector=%23home-header%3A0%3A15
>> <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/
>>
>
>
> ----
> Ivan Herman, W3C
> Home: http://www.w3.org/People/Ivan/
> mobile: +33 6 52 46 00 43
>
>
--
Zheng Xu
Chief Executive Officer
Gardenia Corp
https://gardenia-corp.com/
Received on Thursday, 17 February 2022 12:37:01 UTC