notes on improving the computing-web

an assessment of micromanaging global information processing

[See also computer processor theory history notes]


  • Separable attachments and messages, that keep connected while in separate folders....

    HTML, 'Hyper' Text Markup Language (plus 1978-79 notes revised to work with HTML)


    <­element="title/idea/purpose/value/redirect"> (implicit tooltip/'page-tip')
     (e.g. <­a=[docURL]> is implicit <­a href=[docURL])
     (e.g. <­href=[docURL]> is implicit <­a href=[docURL]> but see also <­.href> below)
     (e.g. <­src=[URL]> is a generalized <­image src=[URL]> or <­iframe src=[URL]>)
     (n.b. thus <­a>,<­img>,<­iframe>,<­span>, are merely 'primary-class' conveniences)
    <­element href=[docURL]> (generalized anchoring, implicit <­a href=[docURL]><­element>)
    <­element style={...} onevent={...}> (enclosing spaces likewise ="..." or ='...')
    <­element "alt text"> (implicit alt="alt text" not attribute 'alt text')
     (n.b. alt, by action/definition, should be a content style="alttext:alt text")
    <­element {styling}> (implicit style={styling} or likewise style="styling")
    <­element subselector{styling}> (implicit <­style>[this] subselector{styling}<­/style>)
    <­HEAD> is extraneous (albeit decades ago it also needed <­NECK> for self-framing)
     (but n.b. <­HEAD id=head_id> can group nonprinting specifications for editing/saving)
    <­STYLE> should appear anywhere, and inside elements should so restrict its range
    <­SCRIPT> already appears anywhere but some prior specs. said not-to as it's global
    &NBSP; ~ &nbsp; (but larger to better fit ALL-CAPS e.g. acronyms)
    &DELTA; ~ &Delta; (so that capitalized-unrendered-text is multilingual)
    u&uml; ~ &uuml; (or u&umlmod; or u&umldiac;)
    TABLE, is a rectangle of self-aligning anythings, rows, columns, borders: a 2-D precedence-interpretation blocking text and elements: Example:--
    <­table>...text and subtable, default 100%-width of the enclosing space...
    <­tr>...row of text, 100%-width of the enclosing table...<­/tr>
    <­tc>...column of text below the tr, 100%-height of the remaining space...
    <­tc>...second column of text, to the right and fitted-with...
    <­tr>...specific row of text within this column...<­/tr>
    <­tc>...third column of text to the right, 100%-height of the space...<­/tc>
    <­tr>...row of text clearing to below the preceding rows and columns...<­/tr>
    ...additional text in the table, below the rows and columns...<­/table>

    locate=left, right, center, justify ... is outer alignment, cf table (n.b. "align" is w3-revisional)
    text-align=left, right, center, justify ... is inner alignment, cf "text"
    text-padding=[px] ... inline-flow within container, around objects, blocks, border-margins

    e.g. <­table width=50% locate=right text-align=left> --places a half-width table on the right, its inner text left.

    Note that TR here facilitates without rebuilding the array with multiple TR's and TC-rowspan=2's; (cf HR, BR-with-border).

    Note also here that unclosed-TR,TC-elements pack sequentially, until a specified closing (else TR,TC go inside TC,TR).


    Because user-data can be locally-relative comparative statistics over a sliding range where vertical columns would runoff absolute-page-right, slanting columns keeps them on-page, e.g. Gantt Scheduling charts of progressive-overlapping process phases, with current years 'centered'.

    e.g. <­table slant> or <­table style=slant:±deg>

    SHINGLED TABLE HEAD (tilted/slanted)

    For column head title/abbreviations longer than 2em while their column data is only flag-letters/symbols, a 40° tilt-up {skew, rotate, matrix} has a footprint, depending on font family and text, roughly two-letters horizontal width ample-but-not-excessive for such data, but contemporary css-text-line-tilting does-not compact column width. [remedy: TH width:2em DIV position:absolute transform:skew() or :rotate(), and transform-origin]

    (Row-sidebar-TH and TFOOT TH might also be tilted to match-all-table-heads)


    Footer data element TF distinct from TH, TD, TC,

    'Natural language' automatic colgroup/col allocation/assignment/association by style/attribute/class on (or placement of col/colgroup before/around) associated TH, or TD, TC, TF, (better than html4/5 'sub-assembler-level-efficiency-col-identification-by-col-spanning-raw-numbers...')

    Events on col/colgroup contents, e.g. TR TH/TH COLGROUP onclick=... TH/TH TH/TH /COLGROUP TH/TH /TR

    Table row break BR after /TD etc., or its own TRBR, to restart placement of row subelements at the left-next without a new TR, e.g. same TR nth-child color (more-consistent with individual rowspan; see also DITTO next)

    'Natural language' automatic rowspan-from-above by attribute rowspan=-1 or style=display:DITTO/ASSUME/ELIDE to effect none-by-this-but-add +1 to column-prior rowspan on TD, TH, TF... default no text unless specified by style before/after content: e.g. dittomark... (Alternate method, style=visibility:DEFER/ELIDE possibly more consistent with html structure as column-prior subelement does not specify its own rowspan+=1)

    Alternatively, CSS selector specification-same/not-as-prior id, attribute, value,...
    (And then, new, exor color spec with #variant, alternate style selection, add to nth-child-span,...)


    A reserved set of HTML 'stem-object/elements', user-programmable, enclosure-closable,
     severally sibling-closable; Specification of parent-child family, child auto-closure assumed;
     e.g. <­XA>, <­XB>, <­XC>,,,<­/XA> (rather than commandeer DL, DT, DD, /DL, or others that work);
     e.g. <­XA>, <­XB>, <­XC>,,,<­/XB> closes XB, XC,,, but not XA (by alphabetic precedence)
    (n.b. some HTML4 had declarable elements, e.g. <­o:o><­/o:o>) 
    (N.B. HTML5 upgrades this to include any invented element e.g. <­xxx><­/xxx>)


    <­!DOCTYPE html> is extraneous (and should need "/>" closure),
    The declaration protocol should be <­HTML HTML5> (class/attribute, prior HTML4.5, HTML4);


    HTML5 should ignore FRAMESET, FRAME, NOFRAMES, (or convert-w/flag if no IFRAME)
    HTML5-capable should preferentially-implement IFRAME inside NOFRAMES (same effect)
    i.e. NOFRAMES innerHTML should-be/always-was-to-be the BODY IFRAME document
    IFRAME innerHTML should render as the default/first document,
     ('alt=' text was while-loading-or-if-none/couldn't)
     (note this is a concept-shift: onevent works on the innerHTML only)


    Forward: '?' should auto-find on the arriving ordinary-document, (scripting may do otherwise)
    Backward: Some way to pass parameters back from a called webpage, (cf simple JSON phrase)
    [remedy (recheck reliability) ongoback=history(-2) replace with referringURL?&returnmessage]


    Object/element tagNames and nameSpaces are essentially classNames in angle-brackets:
    * (multiple instances possible)
    e.g. <­div:b:i:classic:redlined>...<­/div>
    e.g. <­.classic>...<­/.classic> (implicit <­span classic>)
    n.b. <­div.classic:redlined>...<­/div> uses div-defined .classic else general
    n.b. <­p:b>...<­/p> is a p-style block with b-style inline adjustments
    n.b. <­b:p>...<­/b> is a b-style inline-block with p-style adjustments
    nameSpace = HTML:, MYML:, nameSpace:stylePrefixTagName:,
    tagName = HTML, BODY, nameSpace:tagName, tagName:className,
    className = :MYSTYLE,
    <­HTML> opens HTML nameSpace use
    <­DL> is, in HTML nameSpace
    <­DL:DL> is <­DL> in the DL-DL-styleSheet, in HTML nameSpace
    <­MYML> opens MYML nameSpace use
    <­DL> is, in MYML nameSpace
    <­DL:HTML> is <­DL> in HTML nameSpace, despite MYML
    <­DL.MYSTYLE> is with CLASS=MYSTYLE in MYML nameSpace
    <­/MYML> closes MYML nameSpace use
    <­DL.MYSTYLE> is with CLASS=MYSTYLE in HTML nameSpace
    <­/HTML> closes HTML nameSpace use, and global closure on MYML
    N.B. <­DL:HTML> closes with /DL or its-enclosure closure, or by full /DL:HTML
    N.B. <­HTML:DL> closes with /HTML or its-enclosure closure


    e.g. <­SELECT VALUE="optionLabel"> should auto-SELECT that OPTION labeled "optionLabel"
    (And there'd be precedence rules e.g. <­SELECT MULTIPLE VALUE="B,C,D">)
    (e.g. this could be used in php-downloading-html from a database of selections)
    ((n.b. {label, text, innerText} overlap in meaning in this case contemporarily))

    STYLE is an ATTRIBUTE that is a CLASS that is a STYLE

    i.e. <­STYLE> ≡ <­ATTRIBUTES> so that CLASS can be assigned similarly too
    e.g. #clicktable TD:focus {invoke:keypad} to bring-up a touchscreen keyboard (see next)


    SUGGESTED text input property (cf sticky-placeholder verbatim-virtual-prepopulate)
    —shows 'til taken/finished or differing/canceling letter entered
    —ONSUGGESTEND event property taken=true/false/just/part, e.g. script-update next-suggestion
    SCROLLBAR TRACK should have graduations, about the size of the SLIDER, indicating pages
    SCROLLBAR TRACK should have readably-periodic page-counts, by 1's, 2's, 5's, 10's, 20's, 50's
    SCROLLBAR SLIDER should have arrowhead-buttons (being close to the rovot 'mouse' grabbing it)
    SCROLLBAR SLIDER should be momentarily-enlargeable-to-an-easily-grabbable-TAB
    Keyboards: keypad, spellpad/textpad, numberpad/numpad, arrowpad, controlpad, gamepad, userpad
    Keyboard spellpad: romanpad, greekpad, worldpad, IPApad, hieropad, dingpad, signpad (handpad)


    ONLOAD= is bookkeeping that should work on all elements (e.g. prep a table)
    ONOVERFLOW= maybe with/out onscroll/onresize
    ONMAXSTOP= on overflow-prevented by {maxwidth, maxlength, maxsize}
    ONCONTEXTMENU= positions/details: rovot 'mouse', fingers longtouch, cursor selection/ranges
    ONTRIPLECLICK= (e.g. select a paragraph, cf double-click selects an alphanumeric-word)
    (alternatively/currently HTML5-tripleclick implementions select html-block content)
    ONLONGDOWN= (onlongtouch, longer than contextmenu) rovot 'mouse' repeats
    ONLONGHOLD= key repeats
    Rovot 'mouse' hardware and software should implement short bounce, medium depress, long hold
     (cf one-button remote-control but which also had light-press / deep-press)
     (keys should also have these three press-timings)
    Events should be mensurable from the detecting element, not-only the triggering element
     (cf offsetY was [previously] a portion of the detecting-container's offsetHeight)
    Elements should be able to invoke button/key parameters
    e.g. <­INPUT> NumLock the Numberpad
    e.g. pop-up the {Ctrl-F} Find Dialog
    e.g. pop-up the Find Dialog with more capability {e.g. multiword find-after}
    e.g. pop-up the keyboard (without being contenteditable)

    SCRIPT (half-better than Script was -supposed- to become)

    NATURAL LANGUAGE (definition and discovery)

    Turns out that 'javascript' is not the natural-like language promised in the 1970's,-- not only does it not 'know-what-I-mean' when my program refers to associated values of a process, e.g. textrange.move('character',1) returns the distance moved ~1, but should also be capable of returning the new position of the textrange so-moved ..., but it also lacks the basic logic expression IF...THEN, explicitly, the negative-logic-action of ELSE which it does have, where several chained IF...ELSE's ready to consider the next-ELSE would then be capable of considering-not and doing something more for the already-satisfied-IF's cumulative, before the next ELSE:--

    N.B. THEN, explicit, does not terminate the IF...ELSE chain;
    N.B. THEN, may appear after ELSE; but redoubled THEN...ELSE...THEN is extraneous;
    N.B. 'NELSE', I've also-suggested, is the same as THEN-explicit, (if it's not too 'space-alien'ish).

    IF (A) [then] {X}
    ELSE IF (B) [then] {Y}
    THEN {XY}
    ELSE IF (C) [then] {Z}
    THEN {XYZ}
    ELSE {W}
    I.e. IF A then X, or-ELSE IF B then Y, and if-either A or B THEN XY too (XY after either X or Y), or-ELSE IF C then Z, and if-any A, B, C THEN XYZ too, or-ELSE if none A nor B nor C, (X or Y or Z) then W; and thereafter logically general-free again....

    It's important because the ELSE {W} can also belong to an outer-IF...[not]...

    N.B. This might also implement natural-language BUT-FIRST: e.g. IF(A){X} ELSE IF(B){Y} BUT-FIRST{XY-ANTE} THEN{XY-POST}.

    Also, Fix IF(A)IF(B)x;ELSE y; z ... because--

  • the semicolon ";" before ELSE should also ELSE-y on IF(A), as well as on IF(B);
  • the IF(B) needs a way to SKIP the z (without quipping FOR(i in i)...CONTINUE/BREAK...).

    SIMILARLY, The For... and For...In loops need a grand-Then-or-Else post-conclusion distinguished on whether the loop finished-all or broke-out-on-internal-if...Break: The loop exhausting all cases, would invoke the grand-Else: For...Else, is comparable to If...Else...Else.

    ALSO, For...Of should apply to attributes, and For...In to Array values.

    Also, HTML Text needs an intermediate HTxt that acts like Text alphabetically but retains its HTML as unrendered nulls, so that in-line FONT, B, I, U, S, BR, SPAN, &c 'phrases', even all html-elements, are not-lost in the final text-of-HTML-edition, e.g. a Find Text with colors showing (see Plaintext, below), should work as well... HTxt becomes a security-concern, and so is a third-type.

    Also, parentally-structured-elements, e.g. BODY, TABLE, DL, UL, OL, etc., might nicely better have ownText/ownHTML properties being the innerText/innerHTML that belongs to the parent,-only, not any of its structural children, except they parse it into nodes, yet includes text-enhancing-elements, e.g. <­UL><­B>list<­/B><­LI>item<­LI>item<­/LI><­/UL>... Or alternatively more-general, excluding-inner-block-elements...

    '&NBSP;', the .toUppercase() of '&nbsp;' needs be an nb-space too .... Lots of HTML entities are in that dingy: Uppercase &delta; δ is &DELTA; and should be equivalent to &Delta; Δ at-least (but Math-entities should not re-case).

    IFNOT()/IF¬()-statements that handle object-extancy [temporal property exi-stance, not just program existence] properly ... equiv. to IF( !(extancy-and-logic) )

    At-least-one contemporary version among SCRIPT's, appears to not-implement constructors for methods with arguments: e.g. Construct Array.methods.item = Function(item) {for(i in this) if(this[i]==item) return this[i] ; ELSE return this.push(null)} ... cf Object.attribute and Array.item( (The .methods method is an intrinsic non-enumerated .prototype [interfaces] method).

    (N.B. this[i]==item, means value-equality distinct from identically this[i]===item.)

    Also desirable, deeper implied intent, especially for object.method(), for brevity:
    sub/methods should return the object-itself when not-defined-as having return values...
    e.g. = function() {getSelection().removeAllRanges();getSelection().addRange(this)}
    e.g. htmlText = document.createElement('div').appendChild(range.cloneContents()).innerHTML

    And, a more-consistent logical-negation/complement mark {¦,!,¬,~} as "!" implies imperative/override—not do-not
    (but, then-again, 'exclaim', does have a strongish-sense of 'exo-claim/out-cry/bang-out/argue-out/relegate/offset')
    (but, and, then, !x would/should be the bit-complement of x, and x!y the 'exor' of x and y, instead of 'javascript's x^y)
    ((note that x!=y would be x=x!y, and x!==y be x ≠ y, cf x!y resembles x|y 'or-inclusive' while x^y resembles x∧y 'and'))

    SCRIPT FUNCTIONS (Caller-ID, argument persistence behavior)

    Each time a function is called, it should remember -by itself- the prior value/values of the argument/arguments ... It should-not have to rely on the calling scripts to each setup persistence variables and unique names, complexifying the simplicity:

    i. persistence of argument(s) prior value(s);
    ii. identification, and persistence thereto, of calling-scripts, caller-and-message;
    iii. eliminate old-style name-coding for multiple instances of the same call.
    It is the responsibility of certain types of functions to adjust for repeat calls from repeat-caller scripts ...

    e.g. A popup warning any time a peculiar segment of script is invoked, should-not require display-timing variable name-declarations in each calling script, to augment an otherwise-constant display-time ... A popup script should take that responsibility and recognize the caller and its message, and adjust display parameters (e.g. shorten time, shorten text) on repeat occurrences.

    This can be implemented by 'modifiable-constant' argument-- A function called with a constant, remembers the argument instance, the argument adjusted whether constant or variable, e.g. repeated warn("actor name missing",2000) calls be gradually reduced to 500ms.

    Conceptually, It does-not require caller-reprogramming name-generations, to do simple tasks for the program-user: It is a function's responsibility to know who-called and what-was-said ... like Caller-ID on a telephone-- yet contemporary script is too old-fashioned-fortran-esque, to handle that call....

    The old 'MOO' needs recognize functions and program-users as viable objects themselves.

    (N.B. some HTML4 had scripting objects, e.g. HTMLDivElement, String, etc., for prototyping methods)
    (N.B. HTML5 upgrades scripting to include these as "interfaces," e.g. HTMLDivElement, Range, String, etc.)


    Like search-or-find equality-vs-identity, functions too take parameters on call-by-name/reference and call-by-value/calculation, but scripting should go a step further to include call-by-tree/construction/concatenation i.e. such that parameter values can be returned through the call, like by-name/reference but combined, attributes, by 'climbing' back up their tree/construction/concatenation...

    (p.s. some function-oriented languages specify names for each listed parameter, like an assumed-constructed inline list object e.g. f(x=5,y=6).)



    ?N, !N, e.g. ?0,?1-?9,!0,!1-!9

    Output conditions:
    ?N 'if-$N',
    !N 'if-not-$N',
    ?0 'else',
    !0 'always';
    \?,\! are plaintext;

    Logical compounds:
    ?N1?N2 'if-$N1-and-$N2';
    ?N2?N1 'if-$N2-or-$N1' in implicit natural order;
    (n.b. this order may be the less-efficient because latter finds are oft conditioned on earlier, in the input evaluation);
    ?0 reverts from a condition string to non-conditional, (as does any of the !N),
    n.b. !0 can be used to break an AND-string into OR-strings, (Ordinarily a countdown does this, but in instances of process-speed it may be preferred to choose which condition is tested first, e.g. ?1?2?0?3?4 is ?1-AND-?2-OR-?3-AND-?4.)
    !0 means ELSE, a convenience, e.g. ?1?2first!0second is simpler than ?1?2first!1!2second.

    Enable on /c .

    e.g. "?1?2?2?3!1!3xxx" = (if ($1 and $2) or ($2 and $3) or ((not $1) and not $3) then) xxx

    e.g. html-to-rtf conversion, .replace(/&(:(lt)|(gt));/gic,"?1<?2>")

    SKIP/SKIPLOCK/SKIPAHEAD (cf 'Lookbehind')


    Skip-when-found, the local-match-pointer is advanced to the end of the match, i.e. ignore the match-to-its-end without re/trying inside;
    (Skiplock is a Lookahead-option (??), cf equal (?=), not-equal (?!), as an 'atomic' passover like a forward-implementation of backward Lookbehind).

    N.B. This is an interim pointer that collapses-right upon match, without match-loss, within its ()-grouping, and locks-out until the front pointer passes ... the ??-doublet is a 'once-or-not-option' operator, but may be group-quantified /(??exception-rule)*/gic.

    e.g. Split an HTML string on free-/;/ not bound in HTML-entities, skipping such entities; The /;/-character being the tail of HTML-entities requires lookbehind... Skiplock /(??&[\w#]+;);/ will find a generalized HTML-entity and lockout-ignore it past its end, then find the free-/;/ ... Note the outer-subsequent /;/-semicolon is a reduplication as happens after lookahead.

    (cf Perl-style fixed-stare-lookbehind would require several |-alternations to check every possible length of HTML-&-entities.)
      Open-development questions:
    1. Should Skiplock update along the way and advance its release-pointer?
    2. Should multiple Skiplocks start from the inside-left-pointer, or inside-right-pointer?
    3. Should Skiplock be resettable, as when enclosed in a lookahead, and until stepped-on?
    Cf for replace(), a simplistic 'positive-lookbehind' might then be implemented by:
    /(??preface(?=(match)))\1/ where match is found by Lookahead, preface is Skiplocked, and match is refound by captured \1.


    ^ should match also the current-beginning new after each match, 'dragging the anchor'.
    ^^ would then be the absolute once-only beginning.
    n.b. 'Lookbehind' would need to drag and match $ likewise, with $$ the absolute ending.



    #FC3 = #FFCC33 = 0xFFCC33
    100px = 100 (default unit)
    100% = 1.00 (default unit)
    100em + 50em = 150em; 100% + 50% = 150%
    100em + 100en ≈ 145em (mixed arithmetic, default/preference; approx. ratio en ≈ ex)
    (HTML5 has some of this with css calc(a ± b) n.b. necessary spacing)


    2-6 letters; 7-8-letter only if shortest single word desirable not abbreviable, (cf 'mint, livid, lavend, lavender');
    Recognizable color-names common unto stereotypical:


    Special colors, modifiers, 2:4:1-pixel-spaced, regular, irregular, swirls:


    Names that can be read and correctly-interpreted in plaintext or preferentially-converted-to their corresponding font-set characters

    PLAINTEXT FONT-VARIATIONS (direct controls+keys, utf-x, iso-all)

    Special-code character-modifiers to effect sup/sub/over/under/invert/flip(rotate,turn)/sideways/tilt/bold/allcaps/... single/multiple; full set; (uniform, unlike contemporary special-entities, jumbly; gathered from other applications)


    Barely recognizable in contemporary scripting:
     Two objects may be--
    0. the same object (under differing reference names)
    1. defined the same (by-at-from-since the same original definition)
    2. set to the same definition (passed by others from the original definition)
    3. unchanged duplicates (by-at-from-since the same original definition)
    4. the same specification as the definition (the same parameters and values)
    5. similar specification as the definition (the corresponding parameters are the same)
    6. the same unrendered source value (cf htmlText)
    7. the same rendered value (cf text)
    8. the same said-value (e.g. <­img src=[icon] alt=[icon-as-text]; <­span alt=spelt)
    9. the same hover value (cf title e.g. img src=[icon] title=[icon-as-name])
    10. the same transcription value (æ ö ü vs. ae oe ue)
    11. the same trimmed verbal value (e.g. " spacy " vs. "spacy")
    12. the same alphabetic spelling value (e.g. "Capital" vs. "capital")
    13. the same reduced numeric value (e.g. "seven" "7" 7 6+1 17-mod-10 #7 7em)
    (Contemporary technology is a smattering mix-mess of operators and methods, spotty spotting.)


    Right-button-down grabs the document page for yanking, (whatever became of Scroll Lock).

    (N.B. HTML5 distinguishes touch-down grabbing-vs.-data-entry.)

    Touch-screens should also have two-touch range-specification.

    Touch-screens should also have control-keys and control-press-while-touching-text.

    Touch-screens should have menu/edge-invokable keyboard without re-fussing cursor selection

    (P.S. onscreen keyboard upshift key-cap should show as downshift when up-locked.)


    Whitespace \s should match \240 (html &160;, &nbsp;), but major contemporary implementations do-not;
    Series 'non/greedy' ??,*?,+?,{m,n}? / ?,*,+,{m,n}, (minimum/maximum-first) are inconsistent (remedy: group (?:...));
    n.b. RegExp/Regex no longer recognizes /[]]/ and /[^]]/ (remedy: verbatim-literal /[\]]/ and likewise /[^\]]/);
    n.b. RegExp/Regex /...<...>...\<...\>.../ breaks HTML script but should-not (remedy: \x3C '<', \x3E '>');
    n.b. document.write() no longer recognizes '\b' as 'b' (but '' a tall-◘), e.g. '<­\body>' without breaking HTML (remedy: '\B or \x62');

    n.b. some conditional scripts now fail e.g. (range?range:default).selectNodeContents(node) (remedy: var r=range?range:default);
    n.b. caution: the meanings of focusNode and anchorNode (selectionRange) are contrary to plain-technical-English;
    Suggestion: a nonempty range of text beginning or ending on a container boundary should be included in the same container,
    Suggestion: a cursor-only empty range should be a delimiting-point ending in the prior ≠ starting in the next, albeit collapsed;
    Suggestion: collapse() should also have options to move its position and as-far-as-possible (without exceeding),
    Suggestion: (additionally) setStart() and setEnd() should push-if-needed-the-other-end (without exceeding),
    n.b. rendered html vertical presence used-to-be controlled by padding-top:1px (no remedy but user left-right arrows);

    It should be possible to declare local variables inside if() e.g. if(var node=range.startContainer){node.parentNode...)

    n.b. touch-control-screens aren't recognizing style overflow-x,overflow-y scroll (remedy pre-include overflow:scroll)

    n.b. html has multiple interpretations of 'plain' text, some 'subliminal', (and some before HTML5)—
    e.g. source html '.\n.&#13;.' renders as '.\n.'{f7 step}'.' but copies ≢ '.\n.'{space}'.' rendered from html '.\n.'{next line}'.'
    e.g. innerText='.\n.&#13;.' ≡ source html '.<br>.&amp;#13;.' which render as '.'{next line}'.&#13;.'
    e.g. document.createTextNode(".\n.&#13;.") ≡ source html '.'{next line}'.&amp;#13;. which render as '.{space}.&#13;.'

    n.b. contemporary-full-scale Storage/SDCard/File Manager implementations (most-or-all) have Modification Dates,
    n.b. but some fake worthless Modification Dates from Creation Dates even-incorrect changing on every Move/Copy,
    n.b. decades ago one-date schemes kept Modification Dates on local-Move/Copy but Creation Dates on downloads,
    n.b. The improvement on that, is to add transfer-time (or smallest time unit e.g. 1 msec), each successive Copy/Move,
    (note here, there is also a sense of 'exposure time' that locally files are safe-from-exposure but Internet is long open);


    The Number Pad in-Num-Lock does Cursor Control upon Shift but not upon Ctrl:
     (this is "utterly laughable" a qua-dribble fault)
    1. The shiftKey is inaccessible by the right-thumb... "ngyuck ngyuck ngyuck"
     (unless pressing the ctrlKey with it... "ngyuck ngyuck ngyuck")
    2. The Cursor Controls are be-low the big, Number Pad Numbers... "har har har"
     (unless the Number Pad is read upside-down like a telephone... "har har har")
    3. The Number "1" always-was typewriter-Letter "l", so, uppercase "1"
     always-was typewriter-Letter "L"-- not a Cursor Control... "Ha, Ha, Ha"
    4. And, really-- the whole concept of Cursor "Control", is,-- Ctrl...!
    In total-- a misnomer, misnom[b]er-- the question remaining:
     Should, Num-Lock be Ctrl-Lock too...?
    (I also suggest the "End" be on the lower-right key, not lower-left.)
    (And, Number Pad "5" might be a press-wiggle rovot 'mouse' 'joystick'.)



     general user (typ. 10M×100 styles),
     uncertified application (typ. 1M×1K users),
     certified application (typ. 10K×100K users),
     certified browser (typ. 10×100M users),
     certified operating kernal (typ. 10×100M users),
     certified computation engine (typ. 10×100M users)


    Conversationally, it may be noted that upto ca HTML4/5 it was effectually-truly 'hypertext' markup language (HTML)... but from ca HTML4/5 onward with tightened elemental-fragment-selection-range controls it's more like 'hyper-element' or 'hyper-fragment' markup language or 'ranguage' (range-language), HEML, HFML, HTMR, Hyper ultimately Kyper...

    Several premise discoveries under the title,

    Grand-Admiral Petry
    'Majestic Service in a Solar System'
    Nuclear Emergency Management

    © [1978-79 co-ARPAnet rev.], 2005-2018