[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: grub2 accessibility: beeps
Yoshinori K. Okuji
Re: grub2 accessibility: beeps
Wed, 13 Dec 2006 22:38:46 +0100
On Wednesday 13 December 2006 13:45, Marco Gerards wrote:
> I am not offensive at all, why would I be? I am merely saying that
> your reply is on a part of the email that I do not consider relevant,
> while the relevant part is ignored, at least in your reply. I just
> hope you will react on the other part as well, when you have the time.
Then please just say that. I am quite nervous at the word "ignore". ;)
> Well, what I proposed is using hooks so you can program the behavior
> instead of describing it in some kind of syntax. A scripting language
> is always more expressive than syntax (like arguments as Hollis
> proposed, or your style sheet).
> But I do think your style sheet proposal is useful, for example for
> defining the visual layout of the menu. Perhaps it can also be used
> someway to communicate with the scripts behind the hooks. But I do
> not think it is useful to describe behavior in the style sheet because
> this is what scripts are for.
Can you describe some examples besides "beep"? I find it difficult to
recognize what you mean by "behavior".
I continue by guessing. First, it is better to define my own definition of
"behavior". This is complicated, because it is possible to say that
everything is "behavior" in a sense. For example, when you push a down key,
the selected entry goes down. This is a behavior. When the selection changes,
a previous entry stops showing a highlight color (behavior), and a current
entry starts showing a highlight color (behavior).
The ultimate way is to implement all the "behaviors" with the scripting
engine. But I feel that this is overkill, and I guess you agree with this. I
guese we do not want to do everything in scripting.
For me, things classified into "behaviors" are what the boot loader executes
for entries in order to transfer control to an operating system at a point.
In this definition, highlighting entries is not a behavior, because it has
nothing with booting or executing something. Beeping is not a behavior,
either, because beeping itself does not perform anything to boot. Actually,
beeping when an entry is chosen is quite analogous to highlighting. This was
my point in the previous message. I like to call this "appearance" rather
When the user tries to express a certain "appearance", her ability is limited
to within functionality exported from GRUB. This is not different from hooks,
because GRUB must export, for example, commands to allow her to express it.
Now let's see how HTML works. When you want to make a change dynamically with
corresponding to a click, you write a script expression with, for example,
onSelect. Then, the expression changes a style sheet or an attribute to a tag
or a class or something, if you want to change the appearance.
In this case, we provide a hook which is executed by a user action, and we
write some script to control the style sheet. This should work definitely.
But I have another way, that is, specifying what happens only in the style
sheet, like a:hover in HTML.
Personally, I prefer the latter to the former. The latter is simple. All the
user should take care of is the style sheet. The user does not have to wander
Then, why does HTML offer this chimera technique? The reason is partially
historical. Originally HTML was extremely static, and they added more and
more features later, so it gets to the current situation. But another reason
is that scripting can do more than changing appearance. For example, loading
new data from a server, and insert new rows into a table. This kind of
"behavior" is very hard to express with a style sheet. Thus it makes sense to
use scripting for this purpose.
So the question is how much we want to make GRUB dynamic. If you just want to
execute arbitrary commands when executing an entry, you can write commands in
the entry itself. No problem. But, for example, if you want to insert new
menu entries when only selecting an entry (selecting means just moving a
cursor on an entry here), you cannot do this only with a style sheet.
I myself don't need this amount of dynamism for my own use. I prefer that the
content of a menu is static. But others might think of different
characteristics for something that I cannot imagine at the moment.
So, what is your idea about this, Marco?