pert:
My understanding is that relative paths in URI using the file scheme are not valid per the official specification.
Relative links/paths are supported for "file" type URIs.
There is even text describing over the years in various updates to the RFCs desribing how they are handled in some specific cases like for DOS file paths that include driver letters.
Web Browsers have and still handle it correctly.
Over the years, I have seen lots of lazy programmers doing lots of hand waving and not properly support relative paths for local file references claiming it isn't something that is supported.
This includes the gnome developers who claim that file managers don't even have a current working directory location.
(ALL processes have a working directory, they are just not properly setting it up and using it correctly)
There are several path related issues in nautilus, nemo, caja, etc.... where they are not correctly handling paths which causes certain clickable executables to fail.
It all worked years ago, but over the years it broke, and the new, typically younger, authors don't want to address it to fix it, and even have some misconceptions about the working directory of a process.
You might find that some tools support them, but you should not count on it:
File Uri Scheme and Relative Files - Stack Overflow
Yes, I have seen that many s/w developers have started to punt on it and are not getting it correct.
relative paths should be supported. It is part of the RFC - in some cases by reference to another RFC.
When it isn't it supported correctly, it is a bug that should be resolved.
For the Arduino IDE, this worked correctly on the pre 2.0 IDE, so we should make sure it works the same way on the 2.0 IDE as well.
It is a very useful and powerful feature to be able to have a user bring up locally provided/included documentation using the IDE from links inside a sketch.
There is no other way to ship documentation with a library and have the user be able to easily access it directly from the IDE.
Without this capability users have to use a file manager and know the paths where everything is located and then navigate down to where the file is located to bring it up.
That is a bar that is too high for most Arduino users.
Even for those that wouldn't have a issue with it, it becomes how to you let them know it even exists and tell them where it can be found?
I'm sure this is trivial to fix. More than likely the process is not looking for the file in the correct location or is starting the browser in the wrong working directory location due to it not properly handling the relative location which should be relative to the sketch location.
Worst case the IDE could compute a full path and hand that off to whatever sub process brings up the browser to handle the links.
I guess I need to create a github issue for this and start lobbying to get this fixed.
--- bill