<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<p>I can't answer your question directly, but what I can tell you is
that the last time I tried to use lazarius, (which admittedly was
several years ago), it wasn't the least bit accessible. Screen
readers pick up on these elements to know what's visible on the
screen, and what's an roll for screen reader use only, such as a
label for a visible element. I have mentioned that lazarus IDE is
not accessible multiple times in the past, and yet, nobody seems
to be interested in doing anything about it. Perhaps this
question will shed some light on the reasons why it isn't
accessible.</p>
<p>Or, for all I know, it's 100 percent accessible, because someone
fixed it, but I find that generally, if an application is not
accessible, that rarely changes just from standard work on it. 99
percent of the time, the application remains inaccessible, because
nonstandard controls are used, or accessibility rolls are not
coded on the nonstandard controls that are used, usually both.</p>
<p>I'm guessing if someone were to investigate, the difference
between the two things you're asking might actually be more than
is currently expected, but then again, depending on terminology, I
could be completely wrong, and the things that are being discussed
have nothing at all to do with accessibility, wouldn't be the
first time terms have gotten mixed up when trying to solve
accessibility issues.<br>
</p>
<div class="moz-cite-prefix">On 10/19/2026 4:38 PM, Martin Frb via
fpc-devel wrote:<br>
</div>
<blockquote type="cite" cite="mid:4f4f0e8f-df94-43dc-9c8c-18f19b7c91a8@mfriebe.de">
Can someone comment on this?<br>
<br>
Do we have C-like distinction between access and visible? <br>
<br>
I would think not?<br>
<br>
If you can access it you can see it, and vice versa? <br>
I can't think of any other case (i.e. where an identifier would be
hidden by something that you can't access like in the example
below)<br>
<br>
<div class="moz-forward-container">We do have the reverse, that a
public property/function can expose a private type (but not the
name of the type, just its "content" (enum/members))<br>
<br>
<br>
<br>
-------- Forwarded Message --------
<table class="moz-email-headers-table">
<tbody>
<tr>
<th nowrap="nowrap"><br>
</th>
<td><br>
</td>
</tr>
<tr>
<th nowrap="nowrap"><br>
</th>
<td><br>
</td>
</tr>
<tr>
<th nowrap="nowrap"><br>
</th>
<td><br>
</td>
</tr>
<tr>
<th nowrap="nowrap"><br>
</th>
<td><br>
</td>
</tr>
<tr>
<th nowrap="nowrap"><br>
</th>
<td><br>
</td>
</tr>
</tbody>
</table>
<br>
<br>
<p>Martin,</p>
<p>Last week, while we were discussing the FreePascal
accessibility declarations, I began to wonder whether the
private/strict private/protected/strict protected keywords
really were accessibility values or visibility values. In the
reference manual, it uses both terms interchangeably. It
says, "The visibility of the different sections is...", but
then in the text for each value, it uses verbiage like "can be
accessed". In C++, there are situtations where visibility vs.
accessibility is an important distinction. My go-to to expose
this is hiding rules. For example:</p>
<blockquote>
<p>int foo = 1;<br>
<br>
class C {<br>
private:<br>
int foo {2};<br>
};<br>
<br>
class D : public C {<br>
public:<br>
void func()<br>
{<br>
// illegal because C::foo is visible here, but not
accessible.<br>
// Because C::foo is visible, it hides ::foo. <br>
std::cout << foo << '\n';<br>
}<br>
};</p>
</blockquote>
<p>Or another example:</p>
<blockquote>
<p>class C {<br>
public:<br>
int foo { 1 };<br>
};<br>
<br>
class D : public C {<br>
private:<br>
int foo { 2 };<br>
};<br>
<br>
int main()<br>
{<br>
D obj;<br>
// illegal because D::foo is visible here, but not
accessible.<br>
// Because D::foo is visible here, it hides C::foo.<br>
std::cout << obj.foo << '\n';<br>
}<br>
</p>
</blockquote>
<p>My question is: In FreePascal, are there situations like this
where the private/strict private/protected/strict protected
names can hide other names at global scope? Or at any "outer"
scope, for that matter, if these constructs can be declared
arbitrarily nested within other constructs, like in Ada. If
they all can hide names, to my mind, that rules out using
visibility as any part of the description. Instead, if none
of them can hide other names, then perhaps all of them should
be visibility values instead. Or, if it's impossible to
construct an example in FreePascal that can tell the
difference, then perhaps I'm just splitting hairs. :)<br>
</p>
<p>Regards,<br>
Todd Allen<br>
</p>
</div>
<br>
<fieldset class="moz-mime-attachment-header"></fieldset>
<pre class="moz-quote-pre" wrap="">_______________________________________________
fpc-devel maillist - <a class="moz-txt-link-abbreviated" href="mailto:fpc-devel@lists.freepascal.org">fpc-devel@lists.freepascal.org</a>
<a class="moz-txt-link-freetext" href="https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel">https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel</a>
</pre>
</blockquote>
</body>
</html>