Skip to content

Introducing Accessible Scala blog post #911

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Jun 14, 2018

Conversation

MasseGuillaume
Copy link
Contributor

@MasseGuillaume MasseGuillaume commented Jun 14, 2018

@julienrf
Copy link
Contributor

Do you plan to include a screencast?

@MasseGuillaume
Copy link
Contributor Author

@julienrf yes, I'm working on it now.


Have you found yourself where you had to verbally describe code? For example, while pair-programming
or talking about work during lunch. Verbally describing code is not an easy task, fortunately for you the
Scala Center is working on this. [SCP-016]: Accessible Scala, was submitted to provide industry-leading support
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The first two sentences are not appropriate. This project isn't about figuring out how to verbally describe code. It's about accessibility. Can you please change the text to make this clear? As-is, it's inaccurate.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please don't say "industry-leading support," that was also not the goal of this project.

Have you found yourself where you had to verbally describe code? For example, while pair-programming
or talking about work during lunch. Verbally describing code is not an easy task, fortunately for you the
Scala Center is working on this. [SCP-016]: Accessible Scala, was submitted to provide industry-leading support
for blind and partially-sighted developers. It's also an opportunity to formalize a spoken Scala. For example,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Again, we did not intend to "formalize spoken Scala." Can you please remove this?

One of the goals of the proposal is to remove the noise introduced by various delimiters. Notice how the type
parameter delimiters: `[` and `]` are absent from the verbal description. However, with more complex expressions,
this can make the audible form ambiguous, for example, with nested types: `Either[Wobble[T], Option[Wobble[S]]]`
becomes: `Either applied to types Wobble of T, Option of Wobble of S`.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Again, "applied to" is not something everybody agrees with. It's not appropriate to act as if the Scala Center has a made a decision on how to pronounce these things. This is for blind developers.

We hope you are excited as we are by the online demo. We would like to hear your feedback on the verbal
descriptions. We would like to invite the Scala community to improve the quality of the project and join the
effort. You can find an extensive test case here: [DescribeTest.scala]. If you find that descriptions could
be improved, send us a pull request with the expected form. Another area where we would need help
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is great!

@heathermiller heathermiller self-requested a review June 14, 2018 10:37
Copy link
Member

@heathermiller heathermiller left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please change this so as not to claim that we are attempting to formalize how Scala is spoken. We aren't. The goal of this project was accessibility for blind developers.

from your cursor location, you can navigate the abstract syntax tree of the source code. From a node, you can
navigate to the parent node, to the siblings (left or right) or the first child. As you navigate the code,
it's described and selected. We created an online demo (adjust your volume!) to let you try the cursor
technique and hear the descriptions.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe give a simple example of a scenario of someone navigating in some code, and explain what she hears as she navigates through the code?

That will probably be covered by the video but it’s maybe useful to also have something written.

@@ -32,7 +32,9 @@ We created an [online demo]. You can try it now! (Tip: It works best on google-c

We also created a [vscode extension] so you can try on your project. Search for `Accessible Scala` in the
extension manager


<iframe style="margin: 20px auto; display: block;" width="560" height="315" src="https://www.youtube.com/embed/Up2ytnrsX6s" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The video is impressive but I’m wondering if it’d better showing a piece of an actual program rather than a list of everything that’s supported.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

great suggestion, I'm on it :)

@MasseGuillaume
Copy link
Contributor Author

@heathermiller @julienrf

Thanks a lot for the feedback, I'm ready for round 2. This is what I changed:

  • rework the first paragraph to put more emphasis on the goal of the proposal: support blind developers
  • avoid "formalize verbal description" and engage the community earlier
  • add an illustrative example for the cursor navigation
  • add an embedded video with an actual program (Hello, World!)

@julienrf
Copy link
Contributor

The content looks better! I'm on my phone so it's complicated to do a proper review but I saw several typos, can you run a grammar tool on the text?

Also I think the first paragraph goes a bit fast to explain the problem solved by this project.

following expression: `class S[+T]` as `class S parameterized with covariant T`. Since there is more than one way
to pronounce Scala source code, we are open to the community proposition. You can find an extensive test case
here: [DescribeTest.scala]. If you find that descriptions could be improved, send us a pull request with the
expected form.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is great!

here: [DescribeTest.scala]. If you find that descriptions could be improved, send us a pull request with the
expected form.

Reading Scala out loud make some of its syntactic elements less intimidating for beginners. There is no more
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

makes*

expected form.

Reading Scala out loud make some of its syntactic elements less intimidating for beginners. There is no more
need to mentally associate the syntax `+T` with its concept `co-variant`. Notice on the example above, how the type parameter delimiters: `[` and `]` are absent from the verbal description. It call also help sighted developers to describe Scala orally, for example in the context of pair programming. However, when expressions get more complex, the audible form can become ambiguous or difficult to decypher.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Notice in the example above

expected form.

Reading Scala out loud make some of its syntactic elements less intimidating for beginners. There is no more
need to mentally associate the syntax `+T` with its concept `co-variant`. Notice on the example above, how the type parameter delimiters: `[` and `]` are absent from the verbal description. It call also help sighted developers to describe Scala orally, for example in the context of pair programming. However, when expressions get more complex, the audible form can become ambiguous or difficult to decypher.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"It call also"? Error here.

}
```

We created an online demo (adjust your volume!) to let you try the cursor
technique and hear the descriptions.

# Want to try it?

We created an [online demo]. You can try it now! (Tip: It works best on google-chrome! )
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

typo: should be "Google Chrome"

@heathermiller
Copy link
Member

heathermiller commented Jun 14, 2018

Looks good to me as soon as the above-mentioned typos are fixed! Well done @MasseGuillaume!

@MasseGuillaume
Copy link
Contributor Author

ready for round 3

  • fix typos
  • more introduction to the problem

@heathermiller heathermiller merged commit 56a17ee into scala:master Jun 14, 2018
@heathermiller
Copy link
Member

Thank you @MasseGuillaume!

[DescribeTest.scala]: https://github.com/scalacenter/accessible-scala/blob/master/tests/unit/src/test/scala/ch.epfl.scala.accessible/DescribeTest.scala
[Emacspeak]: https://github.com/tvraman/emacspeak
[gitter]: https://gitter.im/scalacenter/accessible-scala
[Scala Contributors]: https://contributors.scala-lang.org/TBD
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@MasseGuillaume can you please open this thread of discussion and make a new PR with the correct link?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants