What you call "Adjectives of nationality" are languages. This is something different. There are many people who speak English(a language) but the most of them are not English(a nationality). You are talking about languages, not about nationalities. There are also languages with no matching nationality (Latin) and vice versa (Mexican).
Languages have names, and names are always nouns and so, when you use those names of languages in German, you always have to write them with an uppercase first letter:
Sie lernt Deutsch.
Here the word Deutsch is telling you what she is learning. It does not tell you how she is learning. So here we use the name of the language, and this is a noun. This is true in German and in English (and I think in most other languages too).
In German this is an accusative object, and you can replace it with another accusative object (objects always contain a noun or a pronoun):
Sie lernt eine Sprache.
Here you again can ask "What is she learning?" and will get the answer "eine Sprache" (a language). But now you can see it even more clear that Sprache is a noun, because it is used with an article (only nouns can have articles).
Normally you don't use languages with an article, but if you add an attribute, you even can do this trick:
Sie lernt ein veraltetes Deutsch. (She learns an outdated German.)
Here "ein veraltetes Deutsch" is the accusative object.
The other example:
Redet sie jetzt deutsch?
Here the word deutsch tells you how she is speaking. She could speak loud or quick or german.
But when we talk about a language, and when the verb is speak, talk, mumble, chat, shout or similar, you also can argue, that you want to tell what she is speaking, talking etc. And then you can argue that it again is a noun:
Redet sie jetzt Deutsch?
Which is correct too, but less common. So here both versions are correct.
But in this example is it alwas must be in lower case:
Dieses Buch ist deutsch. (This book is german.)
There is no way to interpret deutsch as a noun here. I very clearly is an adjective here (is is a part of the predicate), and therefore has to be written in lower case.
Also always in lower case:
- Das ist ein deutsches Buch. (adjective, used as an attribute of a noun)
- Sie trägt ihr Referat deutsch vor. (adjective, used as adverbial)
- Sie trägt ihr Referat auf Deutsch vor.
Here "auf Deutsch" is an adverbial which consists of a preposition and a noun, and becasue it is anoun it has to be written with an upper case first letter.