[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: grub2 accessibility: beeps

From: Yoshinori K. Okuji
Subject: Re: grub2 accessibility: beeps
Date: Wed, 13 Dec 2006 22:38:46 +0100
User-agent: KMail/1.8.2

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 
than "behavior".

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.

We have at least two choices in GRUB. One way is to mimic HTML+CSS+JavaScript. 
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?


reply via email to

[Prev in Thread] Current Thread [Next in Thread]